#include <stdio.h> void quick_sort(int *array, int left, int right) { int key, left_tmp, right_tmp; key = array[left]; left_tmp = left; right_tmp = right; if(left >= right) return; while(left < right) { while((array[right] >= key) && (right > left)) right--; array[left] = array[right]; while((array[left] <= key) && (left < right)) left++; array[right] = array[left]; } array[left] = key; quick_sort(array, left_tmp, left-1); quick_sort(array, left+1, right_tmp); } int main() { int size, i; int array[] = {9,8,7,6,5,4,3,2,1,0,9,6,4,7,4,2,1,6,8,0,78,5,43,2}; size = sizeof(array) / sizeof(array[0]); for(i=0; i<size; i++) printf("%d ", array[i]); printf("\n"); quick_sort(array, 0, size-1); for(i=0; i<size; i++) printf("%d ", array[i]); printf("\n"); return 0; }