插入排序

发布时间:2021-04-08 作者:yaming042 阅读量:- 本文字数:3.4k 阅读时长 ≈ 3 分钟

选择排序我感觉就是遍历数组,选择最小的往前放,从第一个开始,用第一个一次和后面的比较,如果找到比第一个小的,就重置最小数下标index,直到遍历完,把index的元素插入到第一个元素的位置,直到遍历完数组,此时数组就是有序的了

选择排序分两部分,前面一部分为有序序列,后面一部分为无序序列

算法步骤

  1. 从第一个元素开始,遍历无序序列找到最小的元素,插入到有序序列(此时应该就是第一位)的前面
  2. 继续遍历无序序列,找到最小的,插入到有序序列的后面
  3. 重复步骤2,直到数组遍历完成,此时数组就为有序数组

过程如图
选择排序

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function selectSort(arr=[]){
let length = arr.length,
min,
temp;

for(let i=0;i<length;i++){
min = i;
for(let j=i+1;j<length;j++){
if( arr[min] > arr[j] ){
min = j;
}
}

if( min !== i ){
temp = arr[min];

arr[min] = arr[i];
arr[i] = temp;
}
}

return arr;
}

console.log( selectSort([4,9,1,23,5,8,1]) ) //[ 1, 1, 4, 5, 8, 9, 23 ]