《排序算法论》word版

《排序算法论》word版

ID:25756085

大小:46.77 KB

页数:17页

时间:2018-11-22

《排序算法论》word版_第1页
《排序算法论》word版_第2页
《排序算法论》word版_第3页
《排序算法论》word版_第4页
《排序算法论》word版_第5页
资源描述:

《《排序算法论》word版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、排序算法姓名:邓海波学号:2013222053年级:2013级专业:生物信息学一、算法介绍排序算法是为了解决输入的n个数的一个序列{,,...,},经过我们的排序后输出已排好的序列{,,...,}(满足≤≤...≤)。我们将通过不同的排序算法解决这个问题,比如选择排序、插入排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、基数排序等,并通过对其时间复杂度进行对比进而得出相应的结论。二、基本算法1、选择排序选择排序的基本思想是:对待排序的n个数据进行n-1遍的处理,第1遍处理是将a[2..n]中最小者与a[1]交换位置

2、,第2遍处理是将a[3..n]中最小者与a[2]交换位置,......,第i遍处理是将a[i+1..n]中最小者与a[i]交换位置。这样,经过i遍处理之后,前i个记录的位置就已经按从小到大的顺序排列好了。总共比较n(n-1)/2次,时间复杂度为(),其稳定性为不稳定(稳定性是指值相同的数字在排序前后其相对位置是否要发生改变,若要改变就是不稳定,否则就是稳定的。)算法代码:main(){intflag,temp,i,j,a[10]={12,33,45,67,89,99,45,11,22,48};printf("源程序为:

3、n");for(i=0;i<10;i++)printf("%-3d",a[i]);for(i=0;i<9;i++){flag=i;for(j=i+1;j<10;j++){if(a[flag]>a[j]){flag=j;}}if(i!=flag){temp=a[flag];a[flag]=a[i];a[i]=temp;}}printf("排序后为:");for(i=0;i<10;i++){printf("%-3d",a[i]);}}1、冒泡排序冒泡排序基本思想是:对待排序的数字进行两两比较,如发现两个数字是反序的,

4、则进行交换,直到无反序的记录为止(此处是按从大到小的顺序排列)。总共比较n(n-1)/2次,时间复杂度为(),是稳定的排序算法。算法代码:main(){inti,j,l,a[10]={9,89,90,23,56,12,45,67,36,99};printf("源程序为:");for(i=0;i<10;i++){printf("%-3d",a[i]);}printf("");printf("排序后为:");for(i=0;i<10;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){l

5、=a[i];a[i]=a[j];a[j]=l;}}}for(i=0;i<10;i++){printf("%-3d",a[i]);}}1、插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为()。是稳定的排序方法。算法代码:voidinsert(inta[],intleng){inti

6、,j,key;for(i=1;i=0&&a[j]

7、3d",a[j]);}}1、快速排序思想:每次找一个数位基准,把小于等于它的放到这个数的左边,把大于等于它的放到它的右边,每排完一趟,小于等于基准值的,在其左侧。大于等于基准值的在其右侧。平均时间复杂度:()是不稳定的排序算法。算法代码:voidquiksort(inta[],intlow,inthigh){inti=low;intj=high;inttemp=a[i];if(low=temp)&&(i

8、]<=temp)&&(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。