Skip to content

Instantly share code, notes, and snippets.

@EugenyB
Created November 26, 2014 21:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EugenyB/51a9f4c8451f8a04d034 to your computer and use it in GitHub Desktop.
Save EugenyB/51a9f4c8451f8a04d034 to your computer and use it in GitHub Desktop.
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