- 冒泡排序
- 冒泡排序顾名思义就是将数组中较大的数上浮,排在后面,将较小的数放在下面。
- 部分代码如下:
//两两比较,把最大的值排到最后
for(var i = 0; i < a.length - 1; i++){ //比较轮数
for (var j = 0; j < a.length - 1 - i; j++){//比较过程
if(a[j] > a[j+1]){
var temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
- 快速排序
- 快速排序主要通过递归实现,首先将数组中的中间项提出来,再将数组中其他数据依次和中间项比较,小的放在left数组,大的放在right数组,依次类推,再将left和right数组重复次操作,最后完成排序
function quickSort(n) {
//处理边界
if(n.length <= 1){
return n;
}
var pointIndex = Math.floor(n.length/2);
//通过中间索引,把中间项从数组中删除
var pointView = n.splice(pointIndex,1)[0];
var left = [];//左手边
var right = [];//右手边
for(var i = 0; i < n.length; i++){
if(n[i] <= pointView){
left.push(n[i]);
}else{
right.push(n[i]);
}
}
return quickSort(left).concat(pointView,quickSort(right));
}