【Javascript】实现快速,选择,冒泡,插入排序

来源:互联网 发布:大数据预测股票 编辑:程序博客网 时间:2024/05/16 09:07

最近整理了一下常用的排序算法,以备不时之需,仅供参考。

<!DOCTYPE html><html><head>    <title>排序</title></head><body><script>/*快速排序--递归实现,选取第一个元素为枢轴,比它晓得放到左边数组,比他大的放到右边数组*//*var quick_sort = function(arr){    if(arr.length<=1){        return arr;    }    var left_arr = [];    var right_arr = [];    var temp = arr[0];    for(var i=1; i<arr.length; i++){        if (arr[i]>=temp) {            right_arr.push(arr[i]);        } else {            left_arr.push(arr[i]);        }    }    return quick_sort(left_arr).concat([temp], quick_sort(right_arr));}var arr2 = [2,1,4,6,5];console.log(quick_sort(arr2));*//*冒泡排序--每趟不断将记录两两比较,并按“前小后大”(或“前大后小”)规则交换*//*var bubble_sort = function(arr){    for(var i=0; i<arr.length; i++){        var flag = true;        for(var j=0; j<arr.length-1; j++){            if(arr[j+1] < arr[j]) {                var temp = arr[j];                arr[j] = arr[j+1];                arr[j+1] = temp;                flag = false;            }        }        if(flag){            break;        }    }    return arr;}var arr2 = [2,1,4,6,5];console.log(bubble_sort(arr2));*//*插入排序--边插入边排序,保证子序列中随时都是排好序的*//*var insert_sort = function(arr){    for(var i=1;i<arr.length; i++){        var temp = arr[i];        for(var j=i-1; j>=0; j--){            if(temp < arr[j]){                arr[j+1] = arr[j];                arr[j] = temp;            }else{                break;            }        }    }    return arr;}var arr2 = [2,1,4,6,5];console.log(insert_sort(arr2));*//*选择排序--每次都找到一个最小的值和前面的交换*/var selec_sort = function(arr){    var min,temp;    for(var i=0; i<arr.length-1; i++){        min = i;        for(var j=i+1; j<arr.length; j++){            if(arr[j]<arr[min]){                min = j;            }        }        temp = arr[min];        arr[min] = arr[i];        arr[i] = temp;    }    return arr;}var arr2 = [2,1,4,6,5];console.log(selec_sort(arr2));</script></body></html>
1 0
原创粉丝点击