int partition(int data[], int start, int end) {
int pivot = data[end];
int i = start;
int temp;
for (int j = start; j < end; j++) {
if (data[j] <= pivot) {
temp = data[i];
data[i] = data[j];
data[j] = temp;
i += 1;
}
}
temp = data[end];
data[end] = data[i];
data[i] = temp;
return i;
}
int* quicksort(int data[], int start, int end) {
if (start < end) {
int i = partition(data, start, end);
quicksort(data, start, i - 1);
quicksort(data, i + 1, end);
}
return data;
}
Posted: March 20, 2023
Return to the snippets listing