求助!!!
#include <stdio.h>void quick_sort(int length, int array[]);
void quick_sort(int length, int array[])
{
int i, j, mid, num;
mid = length / 2 - 1;
for(i = 0, j = length - 1; i <= j;)
{
if(array < array)
{
i++;
}
if(array >= array)
{
j--;
}
if(array >= array && array < array)
{
num = array;
array = array;
array = num;
}
printf("i = %d, j = %d\n", i, j);
}
for(i = 0; i < length - 1; i++)
{
if(array > array)
{
quick_sort(length, array);
}
}
}
int main(void)
{
int i;
int array = {5, 2, 9, 4, 7, 8, 6, 3, 0, 1};
quick_sort(10, array);
for(i = 0; i < 10; i++)
{
printf("%d ", array);
}
return 0;
}
问题描述 为什么函数quick_sort里的array=0而不是7? #include <stdio.h>
void quick_sort(int* arr, int left, int right);
void quick_sort(int* arr, int left, int right) {
if (left >= right) {
return;
}
int i = left;
int j = right;
int key = arr;
while (i < j) {
while (i < j && arr >= key) {
j--;
}
arr = arr;
while (i < j && arr <= key) {
i++;
}
arr = arr;
}
arr = key;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
int main(void) {
int i;
int array = {5, 2, 9, 4, 7, 8, 6, 3, 0, 1};
quick_sort(array, 0, 9);
for(i = 0; i < 10; i++)
{
printf("%d ", array);
}
return 0;
} 在这段代码中,我们可以看到mid的值被计算为length / 2 - 1。在这个特定的例子中,length的值为10,因此mid的值为4。在main函数中,我们可以看到数组array的第5个元素的值为7。然而,在quick_sort函数中,我们并没有看到任何代码来改变array的值。因此,在函数中,array的值应该是数组中第5个元素的值,即7。如果array的值为0,则可能是由于在调用函数时,数组中第5个元素的值被更改为0。 isdkz 发表于 2023-9-18 08:22
在这段代码中,我们可以看到mid的值被计算为length / 2 - 1。在这个特定的例子中,length的值为10,因此mid ...
那应该怎么修改呢?
页:
[1]