Question: Change low , high , and middle to be pointers to array elements rather than integers representing the array indices. Change the split function to

Change low , high , and middle to be pointers to array elements rather than integers representing the array indices. Change the split function to return a pointer, not an integer.

/* Sorts an array of integers using Quicksort algorithm */ /* Copyright K.N. King -- C programming Ch9.6 */ #include  #define N 10 void quicksort(int a[], int low, int high); int split(int a[], int low, int high); int main(void){ int a[N], i; printf("Enter %d numbers to be sorted: ", N); for(i = 0; i < N; i++) scanf("%d", &a[i]); quicksort(a, 0, N - 1); printf("In sorted order: "); for (i = 0; i < N; i++) printf("%d ", a[i]); printf(" "); return 0; } void quicksort(int a[], int low, int high){ int middle; if (low >= high) return; middle = split(a, low, high); quicksort(a, low, middle - 1); quicksort(a, middle + 1, high); } int split(int a[], int low, int high){ int part_element = a[low]; for(;;){ while (low < high && part_element <= a[high]) high--; if(low >= high) break; a[low++] = a[high]; while (low < high && a[low] <= part_element) low++; if (low >= high) break; a[high--] = a[low]; } a[high] = part_element; return high; } 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!