C 快速排序给我两组不同的数字

C 快速排序给我两组不同的数字,c,arrays,function,sorting,quicksort,C,Arrays,Function,Sorting,Quicksort,您好,我已经编写了一个快速程序测试快速排序,看看我是否完全理解它,但它似乎排序不同的数组。我想我需要一个指针类型?排序后的数组似乎也会随机化相当多的0。代码有问题吗 #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX 150 void quickSort(int array[], int low, int high); // sorting algorithm int sp

您好,我已经编写了一个快速程序测试快速排序,看看我是否完全理解它,但它似乎排序不同的数组。我想我需要一个指针类型?排序后的数组似乎也会随机化相当多的0。代码有问题吗

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 150

void quickSort(int array[], int low, int high); // sorting algorithm
int split(int array[], int low, int high); // spit the array

int main(void)

{
    int array[MAX];
    int i;
    srand((unsigned)time(NULL));

    for (i=0;i<MAX;i++)
    {
        array[i] = rand()%MAX;
        printf("#%d:[%d]\n", i+1, array[i]);
        quickSort(array, 0, MAX-1);
    }
    printf("The sorted order:\n");
    for(i=0;i<MAX;i++)
    {
        printf("#%d:[%d]\n", i+1,array[i]);
    }


    return 0;
}
// function

void quickSort(int array[], int low, int high) // sorting algorithm
{
    int middle;
    if (low >= high)
    {
        return;
    }
    middle = split(array, low, high);
    quickSort(array, low, middle-1);
    quickSort(array, middle+1, high);
}
int split(int array[], int low, int high)
{
    int partElement = array[low];

    for(;;)
    {
        while (low < high && partElement <= array[high])
        {
            high--;

        }
        if (low>= high)
        {
            break;
        }
        array[low++]=array[high];

        while (low < high && array[low] <= partElement)
        {
            low++;
        }
        if (low >= high)
        {
            break;
        }
        array[high--] = array[low];
    }
    array[high] = partElement;
    return high;
}
#包括
#包括
#包括
#定义最大值150
无效快速排序(int数组[],int低,int高);//排序算法
整数分割(整数数组[],整数低,整数高);//吐出阵列
内部主(空)
{
整数数组[MAX];
int i;
srand((无符号)时间(NULL));

对于(i=0;我是否尝试过基本的调试?为什么在随机数生成循环中每一圈都调用快速排序?而不仅仅是在循环后一次调用?@ Lundin,谢谢!我完全错了。请考虑删除这个问题,因为基本上是一个简单的拼写错误。你尝试过基本的调试吗?为什么要快速调用?在随机数生成循环中,每一圈都要排序,而不是循环后一次?@ Lundin,谢谢!我完全错了。请考虑删除这个问题,因为你基本上是一个简单的拼写错误的东西。