Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
void quickSort(int arr[], int size);
void sort(int a[], int left, int right) {
// На входе - массив a[] и пределы сортировки
int i = left, j = right-1; // поставить указатели на исходные места
int temp, p;
p = a[ (i + j) / 2 ]; // центральный элемент
// процедура разделения
do {
while ( a[i] < p ) i++;
while ( a[j] > p ) j--;
if (i <= j) {
temp = a[i]; a[i] = a[j]; a[j] = temp;
i++; j--;
}
} while ( i<=j );
// рекурсивные вызовы, если есть, что сортировать
if ( j > left ) sort(a, left, j+1);
if ( i < right-1 ) sort(a, i, right);
}
void quickSort(int arr[], int size)
{
sort(arr, 0, size);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.