快速排序法
//1.找一个基准点
//2.建立两个数组,分别存储左边和右边的数组
//3.利用递归进行下次比较
function quictSort (arr) {
if (arr.length <= 1) {
return arr;
}
var left = [];
var right = [];
var num = Math.floor(arr.length / 2); //找到数组中间那个数,若是偶数,则因为向下取整所以找到前一位
var numValue = arr.splice(num,1);
for (var i = 0; i <arr.length; i++) {
if (arr[i] < numValue) {
left.push(arr[i]);
}else{
right.push(arr[i]);
}
};
return quictSort(left).concat([numValue],quictSort(right));
}
document.write(quictSort([5,8,99,74,62,24]));
冒泡排序法
1比较相邻的元素。如果第一个比第二个大,就交换它们两个;
2对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
3针对所有的元素重复以上的步骤,除了最后一个;
4重复步骤1~3,直到排序完成。
function sort (arr) {
for (var i = 0; i <arr.length; i++) {
for (var j = arr.length-1; j >=i; j--) {
if (arr[j] < arr[j-1]) {
var tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
};
};
};
return arr; //写完了要返回不然默认是undefined
}
document.write(sort([4,9,1,5]));
- 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
- 针对所有的元素重复以上的步骤,除了最后一个;
- 重复步骤1~3,直到排序完成。