//冒泡排序:
// (从小到大)相邻两个数比较,若后面数小于前面数两个数互换位置,
// 一轮下来最大的排到了最后,length-1轮后数组排序完成
function 冒泡排序(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var m = arr[j];
arr[j] = arr[j+1];
arr[j+1] = m;
}
// console.log(arr);
}
}
return arr;
}
console.log([5,2,4,3]);
console.log("冒泡:",冒泡排序([5,2,4,3]));
console.log('---------------------------');
//选择排序:
// (从小到大)首先将数组第一个数当做数组最小值,将数组最小值与其后数挨个进行比较,
// 若其后某数小于最小数则此数与最小数互换位置变为最小数,一轮下来最小数排到了最前,
// length-1轮后数组排序完成
function 选择排序(arr){
for(var i=0;i<arr.length-1;i++){
var min = i;
for(var j=i+1;j<arr.length;j++){
if(arr[j]<arr[min]){
min = j;
}
var m = arr[i];
arr[i] = arr[min];
arr[min] = m;
// console.log(arr);
}
}
return arr;
}
console.log([5,2,4,3]);
console.log("选择排序:",选择排序([5,2,4,3]));
console.log('---------------------------');
//快速排序:
// (从小到大)将数组第一个数认为 基准值,
// 将数组中小于基准值的数放入一数组中,大于基准值的数放入一数组中,
// 拼接小于基准值数组、基准值、大于基准值数组
// 重复上述步骤
function 快速排序(arr){
if(arr.length == 0){
return [];
}
var base = arr[0];//基准值
var lesser = [];
var greater = [];
for(var i=1;i<arr.length;i++){
if(arr[i]>base){
greater.push(arr[i]);
}else{
lesser.push(arr[i]);
}
}
return 快速排序(lesser).concat(base,快速排序(greater));
}
console.log([5,2,4,3]);
console.log("快速排序:",快速排序([5,2,4,3]));
console.log('---------------------------');
冒泡排序、选择排序、快速排序(js)
猜你喜欢
转载自blog.csdn.net/zsy_snake/article/details/80615297
今日推荐
周排行