• 冒泡排序和快速排序


    快速排序法

    //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 = 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,直到排序完成。
    剑还未备好,身已在江湖
  • 相关阅读:
    Spring加载机制
    SpringMVC 请求过程
    Spring事务传播机制
    数组扩容
    hashmap 底层原和扩容机制
    spring源码
    金字塔表达方式(三)如何使得一个事情变得清晰有逻辑
    金字塔表达方式(二)如何判断事情的逻辑是否正确
    C#设计模式(3)——单例模式(Singleton)
    C#设计模式(2)——工厂模式
  • 原文地址:https://www.cnblogs.com/cjie/p/6124204.html
Copyright © 2020-2023  润新知