您的位置:首页 > 其它

快速排序

2016-04-16 10:36 246 查看
//
//  main.c
//  split
//
//  Created by 邱阳 on 16/3/19.
//  Copyright © 2016年 中路杀神. All rights reserved.
//

#include <stdio.h>
#define SWAP(a,b) (temp=a,a=b,b=temp)
int temp;
int split(int a[],int low,int high)
{
int k,i=low;
int x=a[low];
for(k=low+1;k<=high;k++)
{
if(a[k]<=x)
{
i=i+1;
if(i!=k)
SWAP(a[i],a[k]);
}
}
SWAP(a[low],a[i]);
return i;
}
void quick_sort(int a[],int low,int high)
{
int k;
if(low<high)
{
k=split(a,low,high);
quick_sort(a,low,k-1);
quick_sort(a,k+1,high);
}
}
int main(int argc, const char * argv[]){
int a[]={3,4,1,2,6,8},m;
quick_sort(a,0,5);
for(m=0;m<6;m++)printf("%d",a[m]);
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: