#include <stdio.h> void swap(int array[], int i, int j) { int tmp; tmp = array[i]; array[i] = array[j]; array[j] = tmp; } void print(int array[], int i, int j) { int k; for(k=i; k<=j; k++){ printf("%d", array[k]); } printf("\n"); } void quicksort(int array[], int left, int right) { int i, last; if(left >= right) return; swap(array, left, (left + right)/2); last = left; for(i=left+1; i <= right; i++){ if(array[i] < array[left]){ swap(array, ++last, i);//++last not last } } swap(array, left, last); quicksort(array, left, last-1); quicksort(array, last+1, right); } int main() { int a[]={1,5,2,5,8,7,1,3,9}; quicksort(a, 0, 8); print(a, 0, 8); return 0; }