插入排序

插入排序的思想是:

依次选择未排序的元素,将其插入到已排序的合适位置。

Loop from i = 1 to n-1.
  a) Pick element arr[i] and insert it into sorted sequence arr[0…i-1]
// 插入排序
// 每次选择未排序的元素,将其插入到已排序的合适位置。
func insertSort(nums []int) []int {
	n := len(nums)

	for i := 1; i < n; i++ {
		v := nums[i]  // the unsort elem
		j := i - 1
    // find the last euqal or small than v
		for j >= 0 && nums[j] > v {
			nums[j+1] = nums[j]
			j--
		}
		nums[j+1] = v
	}

	return nums
}

最后更新于