zoukankan      html  css  js  c++  java
  • 冒泡排序和快速排序

    快速排序法

    //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,直到排序完成。
    剑还未备好,身已在江湖
  • 相关阅读:
    34组合总和(39)
    33 原子的数量(726)
    32 划分为k个相等的子集(698)
    31有效的井字游戏(794)
    30 设置交集大小至少为2
    28拼接最大数(321)
    js for循环闭包解决循环变量i遍历值
    js 绑定无响应 父元素监听,绑定子元素,事件绑定的几种方法以及区别
    如何让div+css兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器
    css实现左侧固定宽,右侧自适应
  • 原文地址:https://www.cnblogs.com/cjie/p/6124204.html
Copyright © 2011-2022 走看看