1.冒泡排序
冒泡排序要点:
1、 两层循环,外层循环控制走访数列重复进行的次数,内层循环进行数据的比较、交换,是数据“上浮”。
2、 内层循环是相邻的数据进行比较。
<!--冒泡排序-->
<script type="text/javascript">
var bubbleSort = function(arr){
for (var i = 0; i < arr.length ; i++) {
for (var j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]){
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr) //[1, 1, 2, 3, 4, 6, 7, 8]
}
bubbleSort([1,3,2,1,4,6,7,8]);
2.快速排序
快速排序思想:
1 先找数组的最中间的一个数为基准
2 把数组通过此基准分为小于基准的left数组和大于基准的right数组,
3 递归重复上面的两个步骤,
/*快速排序*/
function quickSort(arr){
if(arr.length < 2){return arr}
var left = [] , right = [] , mid = arr.splice((Math.floor(arr.length/2)),1);
for (var i = 0; i < arr.length ; i++) {
if(arr[i] < mid ){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat(mid,quickSort(right));
}
console.log(quickSort([1,2,3,1,3,5,3,7,4,8,5,3])); //[1, 1, 2, 3, 3, 3, 3, 4, 5, 5, 7, 8]