排序算法

2017-11-26  本文已影响0人  Lucien_d70a

冒泡算法 (bubbleSort)

//思路 J+1项比J项小 我们就调换他们位置
//因为只调换一遍是不够的 所有我们遍历length-1遍
function bubbleSort(arr){
    for(var i = 0;i<arr.length-1;i++){
        for(var j = 0;j < arr.length-1; j++){
            if (arr[j+1]<arr[j]) {
                temp = arr[j+1]
                arr[j+1] = arr[j]
                arr[j] = temp
            }
        }
    }
    console.log(arr)
}
var num = [1,2,35,7,21,5,67,453,15,87,561]
bubbleSort(num) //[1, 2, 5, 7, 15, 21, 35, 67, 87, 453, 561]
function bubbleSort(arr){
    var clock = false
    for(var i = 0;i<arr.length-1;i++){
        for(var j = 0;j < arr.length-1; j++){
            if (arr[j+1]<arr[j]) {
                temp = arr[j+1]
                arr[j+1] = arr[j]
                arr[j] = temp
                clock = true // 如果有遍历我们就true
            }
        }
//如果有遍历,我们就让clock变回false 证明有遍历 需要继续
        if (clock) {
            clock = false
        }else{  //没有 直接跳出循环
            break;
        }
    }
    console.log(arr)
}
var num1 = [1,2,3,4,5]
var num = [1,2,35,7,21,5,67,453,15,87,561]
bubbleSort(num)
bubbleSort(num1)

选择排序(selection Sort)

//思路 每次遍历都和第I个数比较 比他小的就和他调换位置
function selectionSort(arr){
    for(var i=0;i<arr.length-1;i++){
        for(var j=i+1; j<arr.length; j++){
            if (arr[j]<arr[i]) {
                temp = arr[j]
                arr[j] = arr[i]
                arr[i] = temp
            }
        }
    }
    console.log(arr)
}
var arr = [8,9,10,2,6,8,7,1,3,56,10,12,15]
selectionSort(arr)
上一篇 下一篇

猜你喜欢

热点阅读