aoyu 发布的文章

思路:不是见到更小的元素时就交换位置,而是在找到最小的元素时才交换位置。遍历数组的前 n - 1 个元素,从它们及之后的元素中找到最小的元素,与它们交换位置。

数组有 n 个元素,在从第 1 个元素开始的所有 n 个元素中找到最小元素,与第 1 个元素交换位置;在从第 2 个元素开始的所有 n - 1 个元素中找到最小元素,与第 2 个元素交换位置;……;在从第 n - 1 个元素开始的所有 2 个(n - i + 1)元素中找到最小元素,与第 n - 1 个元素交换位置。

- 阅读剩余部分 -

插入排序(insertion sort)模拟了人们整理扑克牌的方式: 将数组分为已排序和未排序两部分;从未排序部分取出一个元素,插入到已排序部分的适当位置;初始时已排序部分只有第一个元素。

思路:将数组视为由两个部分组成,已排序部分和未排序部分。从第 2 个元素开始遍历数组元素,逐步将每个待排序的元素插入到已排序部分的合适位置。在每一轮操作中,算法将未排序部分的第一个元素插入到已排序部分中的合适位置。在插入元素时,已排序部分始终保持有序。待到数组未排序部分的元素遍历完毕,数组完全排序。

- 阅读剩余部分 -