JS中的选择排序和冒泡排序

选择排序

思路: 1.从第一个开始,依次和后面所有做比较,找到最小值,
(需准备一个临时变量,准备存储最小值,初始值可以是第一位)
2.将最小值和第一个数据交换

// 0-1 0-2 0-3 0-4 0-5 min minIndex  arr[minIndex]=arr[0] arr[0]=min
        // 1-2 1-3 1-4 1-5 min minIndex arr[minIndex]=arr[1] arr[1]=min
        // 2-3 2-4 2-5
        // 3-4 3-5
        // 4-5
var arr = [111,233,444,444,553,34,34,23,2,213,455,6,63,534]
        for(var i=0;iarr[j]){
                    [min,minIndex] = [arr[j],j]
                }
            }
            arr[minIndex]=arr[i]
            arr[i]=min
        }
        console.log(arr,'--------------');

冒泡排序

思路:两两比较,大的放后面

/ 以下确定的是比较次数
    // 初始:[5,4,3,2,1]
    // 0-1 1-2 2-3 3-4
    // 第一轮结束:[4,3,2,1,5]
    // 0-1 1-2 2-3
    // 第二轮结束:[3,2,1,4,5]
    // 0-1 1-2
    // 第三轮结束:[2,1,3,4,5]
    // 0-1
    // 第四轮结束:[1,2,3,4,5]
var arr3 = [11,23,4,5,64,66,7,67,41,23,13,4314,1332,34132,23,234,3,2,4]
    for(var i=0;iarr3[j+1]){
                var ls = arr3[j]
                arr3[j]=arr3[j+1]
                arr3[j+1]=ls
            }
        }
    }
    console.log(arr3,'--------------');

实际场景应用

/实例:根据用户的id来排序
     var arr2 = [{id:3,name:"张三"},{id:2,name:"李思"},{id:5,name:"王二"},{id:1,name:"赵五"}];
     function fn(arr){
        for(var i=0;iarr[j+1].id){
                var ls = arr[j]
                arr[j]=arr[j+1]
                arr[j+1]=ls
            }
        }
    }
         return arr
     }
     console.log(fn(arr2),'--------------');
//也可以使用选择排序

2020/11/14

你可能感兴趣的:(JS中的选择排序和冒泡排序)