问题遇到的现象和发生背景
写了快速排序的程序,求大家帮忙看看是哪里出问题了啊
用代码块功能插入代码,请勿粘贴截图
void qsort(int* arr, int lo,int hi)
{
int mid = arr[lo];
int temp;
int i = lo;
int j = hi;
while (i < j)//停下
{
while (arr[j] > arr[mid])
{
j--;
}//j向左遍历,直到停下
while (arr[i] < arr[mid])
{
i++;
}//i向右遍历,直到停下
if (i < j)
{
//交换arr[i]与arr[j]
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[lo] = arr[i];
arr[i] = mid;
qsort(arr,lo,i-1);
qsort(arr,j+1,hi);
}
int main()
{
int a[] = {3,4,6,2,5,7,10};
int n = sizeof(a) / sizeof(a[0]);
int lo = 0;
int hi = n - 1;
qsort(a, lo, hi);
for (int i = 0; i < hi; i++)
{
printf("%d",a[i]);
}
return 0;
}
运行结果及报错内容
是死循环,哭了