用冒泡排序和选择排序算法对数字序列排序(写出排序全过程)
时间: 2024-04-07 08:31:50 浏览: 8
假设待排序的数字序列为:[5, 3, 8, 6, 4, 2]
首先是冒泡排序:
第一轮排序:
比较 5 和 3,发现 5 大于 3,交换它们的位置,序列变为:[3, 5, 8, 6, 4, 2]
比较 5 和 8,发现它们已经有序,不需要交换位置,序列不变:[3, 5, 8, 6, 4, 2]
比较 8 和 6,发现 8 大于 6,交换它们的位置,序列变为:[3, 5, 6, 8, 4, 2]
比较 8 和 4,发现 8 大于 4,交换它们的位置,序列变为:[3, 5, 6, 4, 8, 2]
比较 8 和 2,发现 8 大于 2,交换它们的位置,序列变为:[3, 5, 6, 4, 2, 8]
第一轮排序结束,最大的元素 8 已经被冒泡到最后面了。
第二轮排序:
比较 3 和 5,发现它们已经有序,不需要交换位置,序列不变:[3, 5, 6, 4, 2, 8]
比较 5 和 6,发现它们已经有序,不需要交换位置,序列不变:[3, 5, 6, 4, 2, 8]
比较 6 和 4,发现 6 大于 4,交换它们的位置,序列变为:[3, 5, 4, 6, 2, 8]
比较 6 和 2,发现 6 大于 2,交换它们的位置,序列变为:[3, 5, 4, 2, 6, 8]
第二轮排序结束,第二大的元素 6 已经被冒泡到倒数第二个位置了。
第三轮排序:
比较 3 和 5,发现它们已经有序,不需要交换位置,序列不变:[3, 5, 4, 2, 6, 8]
比较 5 和 4,发现 5 大于 4,交换它们的位置,序列变为:[3, 4, 5, 2, 6, 8]
比较 5 和 2,发现 5 大于 2,交换它们的位置,序列变为:[3, 4, 2, 5, 6, 8]
第三轮排序结束,第三大的元素 5 已经被冒泡到倒数第三个位置了。
第四轮排序:
比较 3 和 4,发现它们已经有序,不需要交换位置,序列不变:[3, 4, 2, 5, 6, 8]
比较 4 和 2,发现 4 大于 2,交换它们的位置,序列变为:[3, 2, 4, 5, 6, 8]
第四轮排序结束,第四大的元素 4 已经被冒泡到倒数第四个位置了。
第五轮排序:
比较 3 和 2,发现 3 大于 2,交换它们的位置,序列变为:[2, 3, 4, 5, 6, 8]
第五轮排序结束,第五大的元素 3 已经被冒泡到倒数第五个位置了。
第六轮排序:
比较 2 和 3,发现它们已经有序,不需要交换位置,序列不变:[2, 3, 4, 5, 6, 8]
第六轮排序结束,第六大的元素 2 已经被冒泡到倒数第六个位置了。
最终得到有序序列:[2, 3, 4, 5, 6, 8]
接下来是选择排序:
第一轮排序:
找到序列中最小的元素 2,将它与第一个元素 5 交换位置,序列变为:[2, 3, 8, 6, 4, 5]
第二轮排序:
在剩下的元素中找到最小的元素 3,将它与第二个元素 3 交换位置,序列不变:[2, 3, 8, 6, 4, 5]
第三轮排序:
在剩下的元素中找到最小的元素 4,将它与第三个元素 8 交换位置,序列变为:[2, 3, 4, 6, 8, 5]
第四轮排序:
在剩下的元素中找到最小的元素 5,将它与第四个元素 6 交换位置,序列变为:[2, 3, 4, 5, 8, 6]
第五轮排序:
在剩下的元素中找到最小的元素 6,将它与第五个元素 8 交换位置,序列变为:[2, 3, 4, 5, 6, 8]
第六轮排序:
剩下一个元素,序列已经有序,不需要排序。
最终得到有序序列:[2, 3, 4, 5, 6, 8]