codecamp

实现选择排序

选择排序跟冒泡有点类似,冒泡是比较相邻两个元素的大小,并交换元素,选择排序则是比较相邻元素的大小以后,记录最小元素在数组中的位置,在每趟循环结束以后交换一次元素

选择排序每趟循环只交换了一次元素,因此效率比冒泡排序更高。选择排序在所有情况下都具有二次时间复杂度。

var array = [];
(function createArray(size) {
  array.push(+(Math.random() * 100).toFixed(0));
  return (size > 1) ? createArray(size - 1) : undefined;
})(12);


function selectionSort(array) {
  // change code below this line
 for (var i = 0; i < array.length; i++) {
     var indexMin=i;
     for(var j=i+1;j<array.length;j++){
        if (array[j]>array[indexMin]) {
            indexMin=j;
        }
        var temp=array[indexMin];
        array[j]=temp;
     }

         
}


  // change code above this line
  return array;
}
selectionSort(array);
冒泡排序
实现直接插入排序
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }