一、原理
从排序序列的第二个元素开始,依次往前面查询,知道找到一个合适的位置就把它插进去。每个元素在交换完成之后 [0, n] 都是一个有序序列,它的时间复杂度为 O(n^2)。
排序逻辑:
|
1 2 |
for i in (1, n-1) 使用 data[i]前向查找,找到一个合适的位置插入 |
一、计数排序 其基本思想为:假设 n 个输入的元素中的每一个都是在 0 到 k 之间的一个整数,对于每一个输入元素 x,确定小于 x 的元素个数,直接把 x 放在它输出的数组中的位置上。例如有 17 个元素小于 x,则 x 就应该在数组的第 18 个位置上。当有几个元素相同时,这一方案就要略作修改,不能都放在同一个位置上。 计数排序需 ... 阅读更多
一、原理 冒泡排序的原理很简单, 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序 (如从大到小、首字母从从 Z 到 A) 错误就把他们交换过来。 冒泡排序是一种稳定的排序算法。 冒泡排序不管在什么情况下,时间复杂度都是 O() 。 对比插入排序来说,在平均的情况下,插入排序性能是冒泡排序的两倍。 ... 阅读更多
一、原理 选择排序 (Selection sort) 是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小 (或最大) 的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小 (大) 元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序 ... 阅读更多
从排序序列的第二个元素开始,依次往前面查询,知道找到一个合适的位置就把它插进去。每个元素在交换完成之后 [0, n] 都是一个有序序列,它的时间复杂度为 O(n^2)。
排序逻辑:
|
1 2 |
for i in (1, n-1) 使用 data[i]前向查找,找到一个合适的位置插入 |
一、原理 选择排序的原理是分治,把排序序列切分成若干个小组后分别排序。每次排序都以随机的一个元素作为哨兵 (一般都以排序区间的中间元素或者首元素作为哨兵),比他大的元素都放到右边,比它小的都放到左边。然后分别对该元素左边和右边的元素再法排序,直到所有的元素都是有序状态。 具体的排序过程描述为: 选取一 ... 阅读更多