计算机软件基础 查找和排序中的习题

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:12:39
7.有一组待排序的记录,其关键字为18,5,20,30,9,27,6,14,45,22。写出用下列方法进行排序时,每一趟排序后的结果及关键字比较次数。
(1) 直接插入排序;
(2) 简单选择排序;
(3) 冒泡排序;
(4) 快速排序;
(5) 归并排序。

假设以从小到大排序:
1.直接插入排序
第一步:{5,18} 20,30,9,27,6,14,45,22 比较1次
第二步:{5,18,20} 30,9,27,6,14,45,22 比较2次
第三步:{5,18,20,30} 9,27,6,14,45,22 比较3次
依次类推……
2.简单选择排序:
第一步:{5} 18,20,30,9,27,6,14,45,22 比较9次
第二步:{5,6} 18,20,30,9,27,14,45,22 比较8次
第三步:{5,6,9} 18,20,30,27,14,45,22 比较7次
依次类推(每次选出最小的出来)……
3.冒泡排序:
第一步:{5,18,20,9,27,6,14,30,22} 45 比较9次
第二步:{5,18,9,20,6,14,27,22} 30,45 比较8次
第三步:{5,9,18,6,14,20,22} 27,30,45 比较7次
依次类推(比较相邻的,逆序的话则互换)……
4.快速排序
第一步:{14,5,6,9} 18 {27,30,20,15,22} 比较9次
第二步:{9,5,6} 14,18 {22,20} 27 {45,30} 比较7次
第三步:{6,5} 9,14,18,20,22,27,30,45 比较4次
第四步:5,6,9,14,18,20,22,27,30,45 比较1次
5.归并排序(以2-路归并为例)
原序列:{18,5} {20,30} {9,27} {6,14} {45,22}
第一步:{5,18} {20,30} {9,27} {6,14} {22,45} 比较5次
第二步:{5,18,20,30}{6,9,14,27} {22,45} 比较5次
第三步:{5,6,9,14,18,20,27,30} {22,45} 比较7次
第四步:{5,6,9,14,18,20,22,27,30,45} 比较9次
其实这些算法都不难,掌握相应算法的思想就很简单了,有疑问地方再提^_^

我有个