快速排序算法。

大神博客在此,参考后自己能写出程序了。

http://blog.csdn.net/morewindows/article/details/6684558

#include<stdio.h>
int AdjustArray(int s[],int l,int r);
int quick_sort(int s[],int l,int r);
void main(){
int s[10]={72,6,57,88,60,42,83,73,48,85};
int i;
quick_sort(s,0,10);
for(i=0;i<10;i++){
printf("%d\n",s[i]);
}

int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[i];
while(i<j){

while(i<j&&x<s[j])j--;
if(i<j){
s[i]=s[j];//挖j坑并填i坑,
i++;//以此i+1坑为点,向中间搜索。 
}

while(i<j&&s[i]<x)i++;
if(i<j){
s[j]=s[i];//挖i坑并填j坑,
j--;//以此j+1坑为点,向中间搜索。
}
}
x=s[i];//此时a[i]==a[j],i,j指向同一元素。 
return i; 
}
int quick_sort(int s[],int l,int r){
if(l<r){//大前提。 
int i=AdjustArray(s,l,r);
quick_sort(s,l,i-1);
quick_sort(s,i+1,r);
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值