一、排序位置的比较方式不同
-
简单选择排序:
- 按顺序比较,找最大值或者最小值。
- 每一轮比较后,只确定一个元素的最终位置。
- 选定一个位置后,再从剩余未排序的元素中找出最小(或最大)的元素,与该位置交换。
-
冒泡排序:
- 比较相邻位置的两个数。
- 每一轮比较后,位置不对的相邻元素都需要换位置。
- 通过多次遍历,将最大(或最小)的元素逐渐“冒泡”到序列的一端。
二、交换次数的差异
-
简单选择排序:
- 每一轮比较后,只进行一次元素交换(即将找到的最小或最大元素与当前轮次的首位元素交换)。
-
冒泡排序:
- 每一轮比较中,相邻元素位置不对都需要交换。
- 因此,冒泡排序的交换次数通常比简单选择排序多。
三、找位置的方法不同
-
简单选择排序:
- 给定位置后,再从未排序的元素中找出最小(或最大)的元素与该位置交换。
- 是一种“选定位置后找数”的方法。
-
冒泡排序:
- 通过数的比较来确定位置,即直接通过相邻元素的比较和交换来逐步确定每个元素的最终位置。
- 是一种“通过数去找位置”的方法。
四、算法效率与稳定性
-
简单选择排序:
- 时间复杂度为O(n^2),其中n为待排序元素的数量。
- 不是一种稳定的排序算法,因为相同元素的相对位置可能会在排序过程中发生改变。
-
冒泡排序:
- 同样具有O(n^2)的时间复杂度。
- 是一种稳定的排序算法,因为相同元素的相对位置在排序过程中不会发生改变。