💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 原理 将整个未排序的数列分为两个部分:一部分是已经排好序的;一部分是没有排好序的。每次都从还未排好序的数列中取出一个数,插入到已经排好序的数列之中,直到未排序的数列为空 在排序过程中,一般默认将数列的第一个数作为已经排序好的数列,将剩余作为未排序好的数列 数列:`[ 9, 4, 5, 1, 3, 2, 6, 8, 7] ` 将整个数列分为两部分: 已排序好的:9 未排序好的:`4 5 1 3 2 6 8 7` 从未排序好的中取出一个数,插入到排序好的数列中 已排序好的:`4 9` 未排序好的:`5 1 3 2 6 8 7` 再从未排序好的中取出一个数,插入到排序好的数列中 已排序好的:`4 5 9 ` 未排序好的:`1 3 2 6 8 7` 依次类推,直到所有数据都排序完成。 # 代码 ``` let array = [9, 4, 5, 1, 3, 2, 6, 8, 7] let insertSort = array => { let temp, j for (let i = 1, length = array.length; i < length; i++) { temp = array[i] j = i - 1 while (j >= 0 && array[j] > temp) { array[j + 1] = array[j] j-- } array[j + 1] = temp } return array } console.log(insertSort(array)) ```