js实现插入排序的一种方法

128 阅读1分钟

插入排序的思想是:将数据分为有序区和无序区,每次从无序区中取出一个元素,然后和有序区从后往前挨个比较,比该元素大的往后移。直到找到比该元素小的元素。那么这个元素就插入到他的后面就行。

function insertSort(arr) {
  for (let i = 1; i < arr.length; i++) {
    // 取出待插入的元素
    let insertValue = arr[i];
    let j = i - 1;
    for (; (j >= 0) && (insertValue < arr[j]); j--) {
      arr[j + 1] = arr[j];
    }
    arr[j + 1] = insertValue;
  }
}

时间复杂度O(n^2) 空间复杂度O(1)