第一范文网 - 专业文章范例文档资料分享平台

数据结构课程设计排序算法总结

来源:用户分享 时间:2025/5/17 9:04:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

high--; L.elem[0]=L.elem[low]; L.elem[low]=L.elem[high]; L.elem[high]=L.elem[0];

while(low

return low; }

void QSort(SqList &L,int low,int high) {

//对顺序表L中的子序列L.elem[low...high]进行快速排序 int pivot=0; if(low

void QuickSort(SqList &L) {

QSort(L,1,L.length); }

//堆排

void HeapAdjust(SqList &L,int s,int m) {

int j=0;

L.elem[0]=L.elem[s]; for(j=2*s;j<=m;j*=2) { if(j

s=j; }

L.elem[s]=L.elem[0]; }

void HeapSort(SqList &L) {

int i=0;

for(i=L.length/2;i>0;i--)

HeapAdjust(L,i,L.length); for(i=L.length;i>1;i--) {

L.elem[0]=L.elem[1]; L.elem[1]=L.elem[i]; L.elem[i]=L.elem[0]; HeapAdjust(L,1,i-1); } }

//归并

void Merge(SqList L,SqList &L1,int i,int m,int n) {

int j=0,k=0,p=0,q=0;

for(j=m+1,k=i;i<=m&&j<=n;++k) { if(L.elem[i]

if(i<=m) for(p=k,q=i;q<=m;p++,q++) L1.elem[p]=L.elem[q]; if(j<=n) for(p=k,q=j;q<=n;p++,q++) L1.elem[p]=L.elem[q]; }

void MSort(SqList L,SqList &L1,int s,int t) {

SqList L2; int * p;

if((p=(int *)malloc((t-s+1)*sizeof(int)))==0) 序表存储空间

//动态分配顺 { printf(\.\\n\ exit(1); }

L2.elem=p;

L2.length=t-s+1;

int m=0; if(s==t) L1.elem[s]=L.elem[s]; else { m=(s+t)/2; MSort(L,L2,s,m); MSort(L,L2,m+1,t); Merge(L2,L1,s,m,t); } }

void MergeSort(SqList &L) {

MSort(L,L,1,L.length); }

搜索更多关于: 数据结构课程设计排序算法总结 的文档
数据结构课程设计排序算法总结.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1sg5d8n4m11cf865cb96_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top