- Comparison-based Sorting Algorithms:
- BUB - Bubble Sort,冒泡排序
- SEL - Selection Sort,选择排序
- INS - Insertion Sort,插入排序
- MER - Merge Sort (recursive implementation),归并排序
- QUI - Quick Sort (recursive implementation),快速排序
- R-Q - Random Quick Sort (recursive implementation).随机快速排序
- Not Comparison-based Sorting Algorithms:
- COU - Counting Sort,计数排序
- RAD - Radix Sort.基数排序
这里只介绍三种基于比较的排序算法(最容易实现,但也不是最有效的):
- 气泡排序——Bubble Sort
- 选择排序——Selection Sort
- 插入排序——Insertion Sort
它们被称为基于比较的,因为它们比较数组的元素对并决定是否交换它们。visualgo.net
1.气泡排序——Bubble Sort
-
基本思想:将相邻两个元素进行比较,如果左边的元素比右边的元素大,则交换它们的位置。每一次循环可以确保最大的数排在了最后面,然后再对前面的数重复这个过程,直到整个数组排序完成。由于每次排序都能确保一个最大值到达其最终位置,因此称为“冒泡”(两个数比较大小,较大的数下沉,较小的数冒起来)
2.选择排序——Selection Sort
-
基本思想:遍历整个数组,找到最小的元素,并将其放在第一位,然后再在剩余的元素中找到最小的元素,并将其放在第二位,以此类推,直到整个数组排序完成。由于每次遍历都能确定当前未排序部分中的最小值,因此称为“选择”。
3.插入排序——Insertion Sort
- 基本思想:遍历整个数组,将当前元素插入到已排序的子数组中正确的位置,使得插入后仍然有序。具体实现方法是,从第二个元素开始,将当前元素与其前面的元素依次比较,找到合适的位置插入,类似于打扑克牌时的插牌操作。由于每次遍历都是将一个元素插入到已排序的序列中,因此称为“插入”。
便于快速学习回顾:
最后插播一个Singapore网站(内有其他排序可视图):visualgo.net
还有一个b站链接:【排序算法】八种排序算法可视化过程_哔哩哔哩_bilibili