冒泡排序的原理:(图片来源于网络)
下面我们用两种方法实现冒泡排序:
var afterDelete = [11, 2, 6, 31, 5]
方法一:
function range(arr) { for(var i=0;i<arr.length-1;i++){ //索引值是i的数字和排在它后面的所有数字依次比较一次 for (var j = i + 1;j < arr.length;j++){ if (arr[i] > arr[j]) { var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } return arr } var rangeResult = range(afterDelete) console.log(rangeResult) // [2, 5, 6, 11, 31]
方法二:
function quickSort(elements){ if(elements.length<=1){ return elements; } var index = Math.floor(elements.length/2); //console.log(index);//5->5->4->3->2->2->1 var pivot = elements.splice(index,1)[0];//获取删除的数字 //console.log("pivot="+pivot);//1-8-7-3-6-4.4-5.5 var arrLeft = []; var arrRight = []; for(var i = 0;i<elements.length;i++){ if(elements[i] < pivot){ arrLeft.push(elements[i]); // console.log("arrLeft="+arrLeft); }else{ arrRight.push(elements[i]); // console.log("arrright="+arrRight) } } return quickSort(arrLeft).concat([pivot],quickSort(arrRight)); } console.log(quickSort(afterDelete)); // [2, 5, 6, 11, 31]