# 排序之插入排序

2 min read

插入排序就是构建有序序列,对于未排序的下一个数据,在已排序序列中从后往前扫描,找到合适的位置插入。

image
图片来源:维基百科

  • 插入排序是一种稳定的排序方法。
  • 插入排序的时间复杂度为 O(n2)。
  • 插入排序的空间复杂度为 O(1)。

插入排序跟选择排序很相似。
插入排序是从选择下一个元素,然后在已经排序好的序列中从后往前遍历,插入到合适的位置。
选择排序是从选择下一个位置,然后从该位置的元素从前往后遍历,选择最小的值排序。

插入排序的伪代码:

i ← 1
while i < length(A)
j ← i
while j > 0 and A[j-1] > A[j]
swap A[j] and A[j-1]
j ← j - 1
end while
i ← i + 1
end while

More Posts

# 排序之冒泡排序

3 min read

冒泡排序就是将数列中第一个关键字和第二个关键字比较,若为逆序,则交换两个关键字,继续比较第二个,第三个关键字,重复直到最后一个。这样子,数列中最大值就位于最后的位置。然后开始第二轮比较,直到 N-1 的位置。一直循环比较 N 轮,直到数列中所有的记录都排序好。冒泡排序总是从左往右遍历,并选择最大的关键字放在最左边。

# 排序之选择排序

2 min read

选择排序就是构建有序序列,对于未排序的下一个位置,在未排序序列中从前往后扫描,选择合适的元素。