1.冒泡排序
- 冒泡排序规则:前后两两进行比较,如果符合比较的条件,就交换两个数的位置,直到所有的数据,都符合从小到大条件,结束排序。
- 规律:每一轮比较,都会找出一个较大的数,放在正确的位置。
代码如下:
// 冒泡排序
var bubbleSort = function(arr) {
var len = arr.length;
for(var i = 0; i < len; i++){
for(var j = 0; j < len - 1 - i; j++){
if(arr[j] > arr[j+1]) {//相邻元素两两对比
var temp = arr[j+1];//元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
2.快速排序
快速排序的规则:
- 随机用数组的其中一个值当基准值(中间值、中介、中线)
- left等于0,right等于数组的长度-1,从左往右
function quickSort(arr){
if(arr.length<1){
return arr;
}
var pivotIndex=Math.floor(arr.length/2);//找到那个基准数
var pivot=arr.splice(pivotIndex,1)[0]; //取出基准数,并去除,splice返回值为数组。
var left=[];
var right=[];
for(var i=0;i<arr.length;i++){
if(arr[i]<pivot){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot],quickSort(right)); //加入基准数
}
arr=[2,1,5,8,3,7,4,6,9];
console.log(quickSort(arr)); //[1, 2, 3, 4, 5, 6, 7, 8, 9]
}
3.插入排序
插入排序的规则
- 把数组分成一个有序数列和一个无序数列
- 默认把数组第一项当成一个有序数列
- 拿第一项去跟其他无序项比较大小
- 调换位置
// 插入排序
var insertSort = function(arr) {
var len = arr.length;
var preIndex, current;
for(var i = 1; i < len; i++){
preIndex = i - 1;
current = arr[i];
while(preIndex >= 0 && arr[preIndex] > current){
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
return arr;
}
305

被折叠的 条评论
为什么被折叠?



