快速排序的c語言實現程式碼
阿新 • • 發佈:2019-02-18
快速排序的基本思想就是選擇一個基準元素,通常選擇第一個元素或者最後一個元素,通過一趟掃描,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好序後的正確位置,然後再用同樣的方法遞迴地排序劃分的兩部分。
具體程式碼如下:
//快速排序實現 #include<stdio.h> int partion(int data[],int low,int high) { int t=data[low]; while(low<high) { while(low<high&&data[high]>=t) { high--; } data[low]=data[high]; while(low<high&&data[low]<=t) { low++; } data[high]=data[low]; } data[low]=t; return low; } void quicksort(int data[],int low,int high) { int part; if(low<high) { part=partion(data,low,high); // printf("%d\n",part); quicksort(data,low,part-1); quicksort(data,part+1,high); } } int main() { int data[]={2,6,1,8,4,3,9}; int length=0,i; length=sizeof(data)/sizeof(data[0]); //printf("%d\n",length); quicksort(data,0,length-1); for(i=0;i<length;i++) { printf("%4d",data[i]); } printf("\n"); return 0; }