js冒泡排序和选择排序

2018-04-09  本文已影响12人  丶灰太狼他叔

1、冒泡排序

普通写法:

var arr = [1,5,7,3,-5,7,9];
    //7个数  比较6轮
    // 第0轮  6
    //   1    5
    //   2    4
    //   3    3
    //   4    2
    //   5    1

    for(var i= 0;i < arr.length-1;i++){  //外层循环控制轮数  6
        for(var j = 0;j<arr.length-1-i;j++){
            if(arr[j]<arr[j+1]){
                var temp = arr[j+1];
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
        console.log(arr[j],'========',j);
    }
    console.log(arr[0]);//9

利用prototype写法:

Array.prototype.arrSort = function(){  
    for(var i = 0;i<this.length-1;i++){  
        for(var j = 0;j<this.length-i-1;j++){  
            if(this[j]>this[j+1]){  
                var temp;  
                temp = this[j+1];  
                this[j+1] = this[j];  
                this[j] = temp;  
             }  
        }  
    }  
    return this;  
}  
var arr = new Array(1,35,4,121,6,14,8,58);  
arr.arrSort()  
console.log(arr); 

这种排序方式就是一个拿出来一个最大值或最小值,然后剩下的再去比较。所以称之为冒泡排序

2、选择排序

function selectSort(arr) {
            var len = arr.length;
            var temp;
            for (var i = 0; i < len - 1; i++) {
                for (var j = i + 1; j < len; j++) {
                    if (arr[j] < arr[i]) {
                        temp = arr[j];
                        arr[j] = arr[i];
                        arr[i] = temp;
                    }
                }
                i++;
            }
            return arr;
        }

选择排序是把每一个数都和第一个数作比较,如果比第一个数小就互换位置。重复n-1轮就实现了选择排序

上一篇下一篇

猜你喜欢

热点阅读