冒泡排序和快速排序

强颜欢笑 提交于 2020-02-25 08:10:44

快速排序法

//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. 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
  3. 针对所有的元素重复以上的步骤,除了最后一个;
  4. 重复步骤1~3,直到排序完成。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!