js数组排序方法

这里使用了冒泡排序、选择排序、插入排序的方式对数组进行排序

 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);

之后还会继续补充添加。

posted @ 2022-02-09 15:01  奔跑的哈密瓜  阅读(831)  评论(0编辑  收藏  举报