数据结构课后习题答案第八章

数据结构课后习题答案第八章

ID:6985800

大小:874.50 KB

页数:9页

时间:2018-02-01

数据结构课后习题答案第八章_第1页
数据结构课后习题答案第八章_第2页
数据结构课后习题答案第八章_第3页
数据结构课后习题答案第八章_第4页
数据结构课后习题答案第八章_第5页
资源描述:

《数据结构课后习题答案第八章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章排序(参考答案)本章所用数据结构#defineN待排序记录的个数typedefstruct{intkey;ElemTypeother;}rectype;rectyper[n+1];//r为结构体数组8.2稳定排序有:直接插入排序、起泡排序、归并排序、基数排序不稳定排序有:希尔排序、直接选择排序、堆排序希尔排序例:49,38,49,90,70,25直接选择排序例:2,2,1堆排序例:1,2,28.3voidStlinkedInsertSort(s,n);//对静态链表s[1..n]进行表插入排序,并调整结果,使表物理上排序{

2、#defineMAXINT机器最大整数typedefstruct{intkey;intnext;}rec;recs[n+1];//s为结构体数组s[0].key=maxint;s[1].next=0;//头结点和第一个记录组成循环链表i=2;//从第2个元素开始,依次插入有序链表中while(i<=n){q=0;p=s[0].next;//p指向当前最小元素,q是p的前驱while(p!=0&&s[p].key

3、//将第个元素链入i++;}//while(i<=n)静态链表的插入//以下是重排静态链表,使之物理有序i=1;p=s[0].next;while(i<=n){WHILE(p

4、le(exchange){exchange=0;//假定本趟无交换for(j=n-i+1j>=i+1;j--)//向前起泡,一趟有一最小冒出if(r[j]r[j-1];exchange=1;}//有交换for(j=i+1;j>=n-I;j++)//向后起泡,一趟有一最大沉底if(r[j]>r[j+1]){r[j]ß>r[j+1];exchange=1;}//有交换i++;}//endofWHILEexchange}//算法结束8.5(1)在n=7时,最好情况下进行10次比较。6次比较完成第一趟快速排

5、序,将序列分成相等程度的序列(各3个元素),再各进行2次比较,完成全部排序。(2)最好的初始排列:4,1,3,2,6,5,78.6voidQuickSort(rectyper[n+1];intn)//对r[1..n]进行快速排序的非递归算法{typedefstruct{intlow,high;}nodenodes[n+1];inttop;intquickpass(rectyper[],int,int);//函数声明top=1;s[top].low=1;s[top].high=n;while(top>0){ss=s[top].lo

6、w;tt=s[top].high;top--;if(ss1){top++;s[top].low=ss;s[top].high=k-1;}if(tt-k>1){top++;s[top].low=k+1;s[top].high=tt;}}}//算法结束intquickpass(rectyper[];ints,t){i=s;j=t;rp=r[i];x=r[i].key;while(i

7、]=r[j];while(i=r[j].key)i++;if(i

8、high=n;ss=s[top].low;tt=s[top].high;top--;flag=true;while(flag

9、

10、top>0){k=quickpass(r,ss,tt);if(k-ss>tt-k)//一趟排序后分割成左右两部分{if(k-ss>1)

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

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

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