快速排序的c语言实现代码

来源:互联网 发布:财政部ppp中心数据 编辑:程序博客网 时间:2024/05/16 17:40

快速排序的基本思想就是选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

具体代码如下:

//快速排序实现#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;}


0 0