1、选择排序
每一轮 比较时,用数组中的某个数和后面的数依次比较,如果这个数大于后面的数,就交换
第一轮 : arr[0] arr[1]--arr[4] 找到最小值
第二轮 : arr[1] arr[2]--arr[4]
第三轮 : arr[2] arr[3]--arr[4]
第四轮 : arr[3] arr[4]
function mySort( arr ){
//外层循环控制比较了几轮 for( var i = 0 ; i < arr.length - 1 ; i++ ){
//里层循环控制 每一轮 比较的次数 for( var j = i+1 ; j<=arr.length - 1 ; j++ ){ if( arr[i] > arr[j] ){ [arr[i],arr[j]]=[arr[j],arr[i]] } } } return arr; }
2、冒泡排序
原理 : 相邻的两个数做比较,大数下沉 小数上浮(如果前一个数大于后一个数,就交换)
每一趟比较完成后 找到最大值 下沉
第一趟比较完成后找到的是数组中的最大值
function mySort( arr ){
//外层循环 控制比较的趟数 for( var i = 0 ; i < arr.length-1 ; i++ ){
//里层循环 控制每一趟比较的次数 for( var j = 0 ; j < arr.length-1-i ; j++ ){
//如果数组中前一个数大于后一个数 就交换 if( arr[j] > arr[j+1] ){ [arr[j] , arr[j+1]]=[arr[j+1] , arr[j]] } } } return arr; }