首页 > 代码库 > 冒泡排序和快速排序

冒泡排序和快速排序

快速排序法

//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 = http://www.mamicode.com/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,直到排序完成。

冒泡排序和快速排序