• 基本排序算法总结


    1.冒泡排序(最大值置后

    var sortBubble = function (arr) {
    //如果数组<=1,则直接返回
    if (arr.length <= 1) {
    return arr;
    }
    for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < arr.length - i - 1; j++) {
    if (arr[j] > arr[j + 1]) {
    var temp = arr[j];
    arr[j] = arr[j + 1];
    arr[j + 1] = temp;
    }
    }
    }
    return arr;
    };

    2.快速排序(left/ right

    var quickSort = function (arr) {
    //如果数组<=1,则直接返回
    if (arr.length <= 1) {
    return arr;
    }
    var pivotIndex = Math.floor(arr.length / 2);
    //找基准,并把基准从原数组删除
    var pivot = arr.splice(pivotIndex, 1)[0];
    //定义左右数组
    var left = [], right = [];

    //比基准小的放在left,比基准大的放在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));
    }

    3.选择排序(最小值置前

    var selectionSort = function (arr) {
    if (arr.length <= 1) {
    return arr;
    }
    for (var i = 0; i < arr.length; i++) { //缩小选择的范围
    var min = arr[i]; //假定范围内第一个为最小值
    var index = i; //记录最小值的下标
    for (var j = i + 1; j < arr.length; j++) { //在范围内选取最小值
    if (arr[j] < min) {
    min = arr[j];
    index = j;
    }
    }
    if (index !== i) { //把范围内最小值交换到范围内第一个
    var temp = arr[i];
    arr[i] = arr[index];
    arr[index] = temp;
    }
    console.log(arr);
    console.log("---------------------");
    }
    return arr;
    }

    4.插入排序

    var insertionSort = function (arr) {
    if (arr.length <= 1) {
    return arr;
    }
    for (var i = 0; i < arr.length - 1; i++) {
    //i代表已经排序好的序列最后一项下标
    var insert = arr[i+1];
    var index = i + 1;//记录要被插入的下标
    for (var j = i; j >= 0; j--) {
    if (insert < arr[j]) {
    //要插入的项比它小,往后移动
    arr[j+1] = arr[j];
    index = j;
    }
    }
    arr[index] = insert;
    console.log(arr);
    console.log("-----------------------");
    }
    return arr;
    }

    
    



  • 相关阅读:
    17种正则表达式
    网页滚动条的处理
    My GIS 2012
    spring 的mvc项目启动报错:java.util.zip.ZipException
    ASP.NET读取XML文件的方法
    urlrewritingnet重写的几点
    ASP.NET 伪静态页面的实现
    URL重写组件UrlRewriter 在Windows XP下的运用
    我们搞web开发,总结一些常用功能源码
    图片二进制存取
  • 原文地址:https://www.cnblogs.com/LP1204/p/8478772.html
Copyright © 2020-2023  润新知