交换排序的基本思想是:
两两比较待排序记录的关键字,如果发生逆序(即排列顺序与排序后的次序正好相反),则交换之,直到所有记录都排好序为止。
基本思路:每趟不断将记录两两比较,并按“前小后大”(或“前大后小”)规则交换。
优点:每趟结束时,不仅能挤出一个最大值到最后面位置,还能同时部分理顺其他元素;一旦下趟没有交换发生,还可以提前结束排序。
前提:顺序存储结构
例:关键字序列 T=(21,25,49,25*,16,08),请写出冒泡排序的具体实现过程。
详情 【PHP】冒泡排序以及优化
基本思想:从待排序列中任取一个元素 (例如取第一个) 作为 中心,所有比它小的元素一律前放,所有比它大的元素一律后放,形成左右两个子表;然后再对各子表重新选择中心元素并依此规则调整,直到每个子表的元素只剩一个。此时便为有序序列了。
优点:因为每趟可以确定不止一个元素的位置,而且呈指数增加,所以特别快!
前提:顺序存储结构
例如:关键字序列 T=(21,25,49,25*,16,08), 请写出快速排序的算法步骤。(设以首元素为枢轴中心)
这种不断划分子表的过程,计算机如何自动实现?
每一趟的子表的形成是采用从两头向中间交替式逼近法;由于每趟中对各子表的操作都相似,主程序可采用递归算法。
新闻热点
疑难解答