快速排序算法的C/C++语言实现

来源:互联网 发布:unity3d手机游戏逆向 编辑:程序博客网 时间:2024/06/06 03:35

这是很多课本教材上的算法描述,主要是递归版本的。

#include<stdio.h>//26/10/12 10:00//一次划分 int one_partition(int a[],int i,int j){    int temp = a[i];    while(i<j){               while((i<j)&&(a[j]>temp))j--;//j左移               if(i<j){//printf("%d ",a[j]);                       a[i] = a[j];                        i++;                                              }               while((i<j)&&(a[i]<temp))i++;//i右移                if(i<j){//printf("%d ",a[i]);                       a[j] = a[i];                       j--;                       }                              }    a[i] = temp;    return i;     }    void quicksort(int a[],int s,int t){                   if(s>=t)return ;                 int k = one_partition(a,s,t);                                quicksort(a,s,k-1);                quicksort(a,k+1,t);                       }      int main(){    int a[10] = {5,9,8,7,2,6,1,0,3,4};        for(int i = 0;i<10;i++)     printf("%d ",a[i]);     printf("\n");          quicksort(a,0,9);        for(int i = 0;i<10;i++)     printf("%d ",a[i]);          getchar();     return 0;    }


示例结果:
原创粉丝点击