学习笔记:排序算法-插入排序

153 阅读1分钟

排序逻辑

  1. 序列中的数据分为:已排序和未排序两个区域。
  2. 从未排序区域中取出第一个元素,与已排序区域最后一个元素比较(从后向前检查),将其插入到合适的位置,插入之后已排序区域序列依然有序,当未排序区域中最后一个元素插入到已排序区域之后,排序完成。

代码实现

insertSort(arr) {
	if (!arr.length) return []
    for(let i = 1; i < arr.length; i++) {
    	let temp = arr[i]
        let j = i - 1
        for(; j>=0, arr[j]>temp; j--) {
        	arr[j + 1] = arr[j]
        }
        arr[j + 1] = temp
    }
	console.log(arr)
}

代码解析

第一次循环变量i为什么要取1呢? 其实是将第0个元素作为已排好序的数据,从第二个元素开始与已排好序的数据进行比较。 可以参考这篇文章 点击这里,解释的非常好(java语言)。