C快速排序算法

 

void quickSort(char* arr,int startPos, int endPos) 

int i,j; 

char ch; //轴枢

ch=arr[startPos]; //将首位元素给轴枢

i=startPos; 

j=endPos; 

while(i<j) //i,j分别从首尾向中间移动

while(arr[j]>=ch && i<j)--j; //首先从尾部,要是尾部元素大于轴枢元素则向左边移动一个,直到移动到的元素小于轴枢元素,停在该元素

arr[i]=arr[j];    //将停在该元素与轴枢元素交换

while(arr[i]<=ch && i<j)++i; //从首部查找移动具体同上

arr[j]=arr[i]; //交换

arr[i]=ch;  //轴枢位置

if(i-1>startPos) quickSort(arr,startPos,i-1); //轴枢前半部      递归调用

if(endPos>i+1) quickSort(arr,i+1,endPos); //轴枢后半部     递归调用

void main() 

char ch[]="qwertyuiopasdfghjklzxcvbnm"; 

quickSort(ch,0,25); 

printf("\n%s\n",ch); 

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值