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,直到排序完成。
    剑还未备好,身已在江湖
  • 相关阅读:
    刷面经笔记2019.02.11
    刷面经笔记2019.02.10
    刷面经笔记2019.02.09
    刷面经笔记2019.02.07
    刷面经笔记2019.02.05
    刷面经笔记2019.01.31
    刷面经笔记2019.01.30
    刷面经笔记2019.01.28
    头条2020届实习生笔试题
    金s办公软件web前端笔试题
  • 原文地址:https://www.cnblogs.com/cjie/p/6124204.html
Copyright © 2011-2022 走看看