js 排序算法之 冒泡排序 和 选择排序

function arrayList() {
    var array=[];
    this.insert=function(item){
        array.push(item);
    }

    this.toString=function(){
        return array.join();
    }
    // 冒泡排序
    this.bubbleSort=function(){
        let length = array.length;
        // 外层循环控制轮数
        for(let i=0; i<length;i++){
            console.log("外层:"+i);
            // 内层负责对比换位
            for (let j = 0; j <length-1-i; j++) {
                console.log("内层:" + j);
                if (array[j]>array[j+1]) {
                    swap(array,j,j+1)
                }
            }
        }
    }
    // 选择排序
    this.selectionSort = function () {
        var length = array.length,  
        indexMin;  
        for (var i=0; i<length-1; i++){  
            indexMin = i;
               
            for (var j=i; j<length; j++){     //{4}      
                if(array[indexMin]>array[j]){ //{5}        
                    indexMin = j;             //{6}      
                }    
            }    
            if (i !== indexMin){              //{7}      
                swap(array,i,indexMin);    
            }  
        }
    };

    function swap(array,index1,index2){
        [array[index1], array[index2]] = [array[index2], array[index1]];
    }
}

function creatRandomArray(size){
    let array = new arrayList();
    for (let index = size; index > 0; index--) {
        array.insert(index);
    }
    return array;
}

var array = creatRandomArray(5);
console.log(array.toString())
// array.bubbleSort();
console.log(array.toString())
array.selectionSort();
console.log(array.toString())

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容