这里使用了冒泡排序、选择排序、插入排序的方式对数组进行排序
1 let arr = [1,3,2,7,5,4]; //对数据进行从小到大排序
2 // **冒泡排序**
3 // 冒泡排序按照一定的遍历规则(从小到大、从大到小),对数据进行遍历,每一轮遍历结束会确定一个最大值或者最小值,在对剩下的数据再次进行重复操作,直到最后剩余一个元素。
4 // 第一轮遍历的具体步骤:
5 // 1、3对比,1小于3不替换位置,结果为[1,3,2,7,5,4],
6 // 3、2对比,3大于2,2、3替换位置,结果为[1,2,3,7,5,4],
7 // 3、7对比,3小于7不替换,结果为[1,2,3,7,5,4],
8 // 7、4对比,7<4替换,结果为[1,2,3,5,7,4],
9 // 7、5对比,7大于5替换,结果为[1,2,3,5,4,7]
10 // 第一轮走完,最终确定了一个最大值7,接下来遍历的数据为[1,2,3,5,4],重复进行
11 // for(let i = 0;i < arr.length;i++){
12 // for(let j = 0;j <arr.length-i;j++){
13 // if(arr[j]>arr[j+1]){
14 // let t = arr[j];
15 // arr[j] = arr[j+1];
16 // arr[j+1] = t;
17 // }
18 // }
19 // }
20 // console.log(arr);
21 // **选择排序**
22 // 选择排序每次都会获得最大或者最小元素的下标,每次遍历结束替换下标元素的位置,获得一个最值,他不需要像冒泡排序一样,每一次的遍历需要进行多次交换
23 // 第一轮遍历具体步骤:
24 // 下标为0开始,设置为最大值下标,用arr[0]和其他的进行对比,1和3对比,3大,取3的下标作为最大值下标
25 // 下标为1,3和2对比,3大,下标不变
26 // 下标为1,3和7对比,7大,取7的下标作为最大值下标
27 // 下标为3,7和5对比,7大,下标不变
28 // 下标为3,7和4对比,7大,下标不变
29 // 第一轮遍历走完,最终确定最大值下标为3,取最大值下标和数组最后一个元素替换,变为[1,3,2,4,5,7],接下来的遍历的数据为[1,3,2,4,5],去掉最后一个已经确定的元素,继续如下操作
30 // for(let i = 0;i < arr.length;i++){
31 // let maxIndex = 0; //存储最大值下标
32 // for(let j = 0;j < arr.length-i;j++){
33 // if(arr[maxIndex] < arr[j]){
34 // maxIndex = j;
35 // }
36 // }
37 // let t = arr[maxIndex];
38 // console.log(t);
39 // arr[maxIndex] = arr[arr.length-i-1];
40 // arr[arr.length-i-1] = t;
41 // }
42 // console.log(arr);
43 // **插入排序**
44 // 插入排序主要是将需要排序的数组分为两部分,取第一个元素作为已排序数组,其余元素作为未排序数组,一次取未排序数组的元素和已排序数组中的元素进行对比插入,最终未排序数组变为空值,已排序数组就是排序结果
45 // for (var i = 0, len = arr.length; i < len; i++) {
46 // var item = arr[i]; // 储存当前位置的值
47 // for (var j = i - 1; j > -1 && arr[j] > item; j--){ // 和前面已经有序的部分,比较,交换
48 // arr[j + 1] = arr[j];
49 // }
50 // arr[j+1] = item;
51 // }
52 // console.log(arr);
之后还会继续补充添加。