pascal语言多种排序算法源程序

pascal语言多种排序算法源程序

ID:34725222

大小:61.18 KB

页数:3页

时间:2019-03-10

pascal语言多种排序算法源程序_第1页
pascal语言多种排序算法源程序_第2页
pascal语言多种排序算法源程序_第3页
资源描述:

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

1、PASCAL语言多种排序算法源程序1.快速排序:procedureqsort(l,r:integer);vari,j,mid:integer;begini:=l;j:=r;mid:=a[(l+r)div2];{将当前序列在中间位置的数定义为中间数}repeatwhilea[i]middodec(j);{在右半部分寻找比中间数小的数}ifi<=jthenbegin{若找到一组与排序目标不一致的数对则交换它们}swap(a[i],a[j]);inc(i);dec(j);{继续找}end;untili>j;i

2、fl

3、ort;vari,j,k:integer;beginfori:=1ton-1doforj:=i+1tondoifa[i]>a[j]thenswap(a[i],a[j]);end;4.冒泡排序procedurebubble_sort;vari,j,k:integer;beginfori:=1ton-1doforj:=ndowntoi+1doifa[j]

4、na[0]:=a[i];k:=2*i;{在完全二叉树中结点i的左孩子为2*i,右孩子为2*i+1}whilek<=mdobeginif(k

5、wap(a[1],a[j]);sift(1,j-1);end;end;6.归并排序{a为序列表,tmp为辅助数组}proceduremerge(vara:listtype;p,q,r:integer);{将已排序好的子序列a[p..q]与a[q+1..r]合并为有序的tmp[p..r]}varI,j,t:integer;tmp:listtype;begint:=p;i:=p;j:=q+1;{t为tmp指针,I,j分别为左右子序列的指针}while(t<=r)dobeginif(i<=q){左序列有剩余}and((j>r)or(a[i]<=a[j])){满足取左边序列当前元素的要求

6、}thenbegintmp[t]:=a[i];inc(i);endelsebegintmp[t]:=a[j];inc(j);end;inc(t);end;fori:=ptordoa[i]:=tmp[i];end;{merge}proceduremerge_sort(vara:listtype;p,r:integer);{合并排序a[p..r]}varq:integer;beginifp<>rthenbeginq:=(p+r-1)div2;merge_sort(a,p,q);merge_sort(a,q+1,r);merge(a,p,q,r);end;end;{main}begin

7、merge_sort(a,1,n);end.

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

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

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