#include <stdio.h> #include <stdlib.h> void swap(int *a , int *b) { int tmp = *b; *b = *a; *a = tmp; //printf("swap = %d_%d\n",*a,*b); } int quicksort(int *ArrayPtr , int left , int right) { int Pivot , i ,j; if(left >= right) { return -1; } Pivot = *(ArrayPtr + left); i = left + 1; j = right; while(1) { while( i <= right) { if(*(ArrayPtr + i) > Pivot){ break; } i++; } while(j > left) { if(*(ArrayPtr + j) < Pivot) { break; } j--; } if( i > j) break; swap(ArrayPtr + i , ArrayPtr + j); } swap(ArrayPtr + left , ArrayPtr +j); quicksort(ArrayPtr , left , j-1); quicksort(ArrayPtr , j+1 , right); return 0; } int main(void) { int data[10]={3,11,9,1,2,8,4,5,1} ,i; quicksort(data, 0, 9 - 1); for(i = 0 ;i <9 ;i++){ printf("%d_",data[i]); } return 0; }
code: https://drive.google.com/file/d/0B8hm-I2M8BD7cHJldHZIZXNZS28/view?usp=sharing
沒有留言:
張貼留言