目录
给定数组:[12, 23, 8, 15, 33, 24, 77, 55]
1. 选择排序
选择排序的思路是从未排序的部分中选择最小的元素,然后将其与未排序部分的第一个元素交换。
选择最小值为8,与第一个元素12交换,得到:[8, 23, 12, 15, 33, 24, 77, 55]
2. 冒泡排序
冒泡排序的思路是比较相邻的元素,如果顺序不对则交换。
(1)比较第1和第2个元素,不需要交换。
(2)比较第2和第3个元素,需要交换,得到:[12, 8, 23, 15, 33, 24, 77, 55]
(3)比较第3和第4个元素,不需要交换。
(4)比较第4和第5个元素,不需要交换。
(5)比较第5和第6个元素,不需要交换。
(6)比较第6和第7个元素,不需要交换。
(7)比较第7和第8个元素,不需要交换。
3. 插入排序
插入排序的思路是将一个元素插入到已排序好的部分中。
(1)将第2个元素23插入到已排序部分(第1个元素12)之前,
得到:[12, 23, 8, 15, 33, 24, 77, 55]
(2)将第3个元素8插入到已排序部分(前两个元素)之前,
得到:[8, 12, 23, 15, 33, 24, 77, 55]
(3)将第4个元素15插入到已排序部分(前三个元素)之前,
得到:[8, 12, 15, 23, 33, 24, 77, 55]
(4)将第5个元素33插入到已排序部分(前四个元素)之前,
得到:[8, 12, 15, 23, 33, 24, 77, 55]
(5)将第6个元素24插入到已排序部分(前五个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 77, 55]
(6)将第7个元素77插入到已排序部分(前六个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 77, 55]
(7)将第8个元素55插入到已排序部分(前七个元素)之前,
得到:[8, 12, 15, 23, 24, 33, 55, 77]
4. 快速排序
快速排序的思路是选择一个基准元素,将小于基准放在左侧,大于基准放在右侧。
(1)选择基准为第一个元素12。
(2)从右向左找到比基准小的元素,将其放在基准的位置,
得到:[8, 23, 12, 15, 33, 24, 77, 55]
(3)从左向右找到比基准大的元素,将其放在之前右移的位置,
得到:[8, 23, 12, 15, 33, 24, 77, 55]
(4)将基准放在正确的位置,
得到:[8, 12, 23, 15, 33, 24, 77, 55]