🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![](https://box.kancloud.cn/91b76e8e4dab9b0cad9a017d7dd431e2_811x505.jpg) 思路: 1. 从第2个元素开始向后依次取出一个元素,记作 a 2. a 依次和它前面的每一个元素进行比较 3. 如果前面的某个元素大于 a,那么这个大的元素就向后移一位 4. 当遇到一个不大于 a 的元素时,就把 a 放到这个元素的后面 # JavaScript ~~~ function insertSort(arr) { let tmp for(let i=1;i<arr.length;i++) { // 取出第 i 个元素 tmp = a[i] // 循环前面的元素进行比较 for(var j=i-1;j>=0;j--) { // 如果前面的元素大于这个元素 if(a[j]>tmp) { // 把前面这个元素向后移动一位 a[j+1] = a[j] } else { break } } // 把这个元素放到不小于它的元素后面 a[j+1]=tmp } return arr } ~~~ 可以简写为 ~~~ function insertSort(arr) { for(let i=1;i<arr.length;i++) { // 取出第 i 个元素 let tmp = a[i] // 循环前面的元素进行比较 for(var j=i-1;j>=0&&a[j]>tmp;j--) { a[j+1] = a[j] } // 把这个元素放到不小于它的元素后面 a[j+1]=tmp } return arr } ~~~