Быстрая сортировка, дающая мне два разных набора чисел

#c #arrays #function #sorting #quicksort

#c #массивы #функция #сортировка #быстрая сортировка

Вопрос:

Привет, я написал быструю программу, тестирующую быструю сортировку, чтобы убедиться, что я ее полностью понимаю, но похоже, что это сортировка другого массива. Я полагаю, мне нужно ввести указатель? Также кажется, что отсортированный массив рандомизирует совсем немного 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 amp;amp; partElement <= array[high])
        {
            high--;

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

        while (low < high amp;amp; array[low] <= partElement)
        {
            low  ;
        }
        if (low >= high)
        {
            break;
        }
        array[high--] = array[low];
    }
    array[high] = partElement;
    return high;
}
  

Комментарии:

1. Вы пробовали базовую отладку?

2. Почему вы вызываете быструю сортировку для каждого круга в цикле генерации случайных чисел? И не только один раз после цикла?

3. @Lundin о, спасибо! я совершенно неуместно это сделал.

4. Пожалуйста, подумайте об удалении этого вопроса, поскольку у вас была, по сути, простая опечатка, которая все испортила.