所有排序算法的基本原理无外乎将一个无序序列分为有序区(1个即有序)和无序区,然后不断重复迭代将无序区的数放入有序区。
以下排序算法皆以升序为例:
一、穷举法: 1.冒泡排序(Bubble Sort): 如图大数往上顶,任意两个相邻数从无序到有序。
2.插入排序(Insertion Sort): 如图左侧为有序区,右侧无序区,将无序区的第一个元素插入到有序区合适的位置,重复过程。
3.选择排序(Selection Sort): 如图左侧为有序区,右侧无序区。将无序区最小的元素与无序区的第一个元素对调,重复过程。
二、分治法(Divide and Conquer): 4.归并排序(Merge Sort):
5.快速排序(Quick Sort): 随便找个基准数(一般取首或尾),小的放它左边,大的放它右边。对两侧的分区重复以上过程。其中的基准数就是有序区,两侧区间就是无序区。
新闻热点
疑难解答