1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 简单的C语言代码实现快速排序

简单的C语言代码实现快速排序

时间:2020-05-16 17:43:45

相关推荐

简单的C语言代码实现快速排序

快速排序的基本原理是采用递归,我们主要关注第一次排序。排序中,我们需要给出待排的一组数的最左边和最右边的两个数:left、right用于指定排序的范围,通常left=0;right=len-1。此外还需要给出一个基数,这个数的选取比较随意,通常选为第一个数即可。选出这个基数(point)后,我们进行比较,将小于基数的数移到左边,大于的数移到右边,完成第一次排序。此后在左半部分和右半部分进行递归即可完成全部的排序。

#include<stdio.h>void qusort(int a[],int l,int r){int i=l;//i为从左到右的‘key’值int j=r;//r为从右到左的'key'值int point=a[i];//将基准值设为a[0]if(l>r){return;}//防止输入错误while(i<j){while(i<j&&a[j]>point)j--;//如果右边大于基准值,右边左移if(i<j){s[i]=s[j];i++;}如果右边小于基准值,右边填坑基准值的位置,并右移一位while(i<j&&a[i]<point)i++;//如果左边小于基准值,左边右移if(i<j){s[j]=s[i];j--;}如果左边小于基准值,左边填坑到右边,并左移一位}s[i]=point;//填坑qusort(a,l,i-1);//左边递归qusort(a,j+1,r);//右边递归}int main(){int a[]={48,6,57,42,60,72,83,73,88,85 };int len=sizeof(a)/sizeof(int);//使用len维护数组大小qusort(a,0,len-1);for(int i=0;i<len;i++){printf("%d",a[i]);}}

结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。