南京晓庄学院数据结构题库参考答案(6)

2018-12-17 10:24

课后作业部分第九章查找

序. 起泡排序. 快速排序. 简单选择排序以及二路归并排序每趟的结果。

2. 判别下列序列是否为堆,如不是,按照堆排序思想把它调整为堆,用图表示建堆的过程。

⑴(1,5,7,25,21,8,8,42) ⑵(3,9,5,8,4,17,21,6)

【解答】序列⑴是堆,序列⑵不是堆,调整为堆(假设为大根堆)的过程如下图所示。

24

课后作业部分第九章查找

四. 算法设计

1. 直接插入排序中寻找插入位置的操作可以通过折半查找来实现。据此写一个改进的插入排序的算法。

#region 折半插入排序算法 void HalfInsertSort(int[] array) {

for(int i=2;i

array[0] = array[i]; //或者也可以添加if (array[i] < array[i - 1])先行判断 int low = 1; int high = i - 1; while(low <= high) {

int mid = (low + high) / 2;

if (array[0] < array[mid]) high = mid - 1; else low = mid + 1; } int j=0;

for (j = i - 1; j >= high + 1; --j) { array[j + 1] = array[j]; } array[j + 1] = array[0]; } }

#endregion

2. 已知(k1, k2, …, kn)是堆,试写一算法将(k1, k2, …, kn, kn+1)调整为堆

25


南京晓庄学院数据结构题库参考答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第四编第一分编明代文学教案(32课时)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: