已知初始待排序关键码{5,8, 1, 3, 9, 6, 2, 7},回答下列问题: (1)写出采用冒泡法排升序的前三趟结

已知初始待排序关键码{5,8, 1, 3, 9, 6, 2, 7},回答下列问题: (1)写出采用冒泡法排升序的前三趟结果
已知初始待排序关键码{5,8, 1, 3, 9, 6, 2, 7},回答下列问题:
(1)写出采用冒泡法排升序的前三趟结果


(2)写出采用简单选择法排升序的前三趟的结果



(3)采用直接插入排序算法,写出6插入后的排序结果
喜欢做梦的人 1年前 已收到1个回答 举报

jarvis1984 春芽

共回答了22个问题采纳率:90.9% 举报

冒泡和快速排序的区别在于:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素。将待排序的元素看作是竖着排列的"气泡",较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个"气泡"序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即"轻"的元素在下面,就交换它们的位置。显然,处理一遍之后,"最轻"的元素就浮到了最高位置;处理二遍之后,"次轻"的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是"最轻"元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。 所以,选择排序每扫描一遍数组,只需要一次真正的交换,而冒泡可能需要很多次。比较的次数是一样的。 其实看你声明的变量的个数就知道了。选择的要比冒泡的多声明一个,用来存储最小(或最大的)元素的下标。而冒泡的比较后直接换。

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.105 s. - webmaster@yulucn.com