zoukankan      html  css  js  c++  java
  • 快排、插入、冒泡排序

    快排实现:

        // 快速排序
        function quickSort(arr) {
            // 长度为1表示不可再分割 返回数组
            if (arr.length <= 1) {
                return arr;
            }
            // 基数位置默认为中间
            var p = Math.floor(arr.length / 2);
            var el = arr.splice(p, 1)[0];
            // 左边存储比基数小的 右边存储比基数大的
            var left = [],
                right = [];
            // 遍历数组
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] < el) {
                    left.push(arr[i]);
                } else {
                    right.push(arr[i]);
                }
            }
            // 左-基数-右
            return quickSort(left).concat([el], quickSort(right));
        }
        var arr = [6, 2, 5, 7, 3];
        console.log(quickSort(arr));

    插入排序:

        function InsertionSort(a) {
            var to = a.length,
                from = 0;
            for (var i = from + 1; i < to; i++) {
                var element = a[i];
                for (var j = i - 1; j >= from; j--) {
                    var tmp = a[j];
                    var order = (tmp - element);
                    if (order > 0) {
                        a[j + 1] = tmp;
                    } else {
                        break;
                    }
                }
                a[j + 1] = element;
            }
            return a;
        };

    冒泡:

        function bubble(arr) {
            for (var i = arr.length; i--;) {
                for (var j = 0; j < i; j++) {
                    (arr[j] > arr[j + 1]) && ([arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]);
                }
            }
            return arr;
        }
  • 相关阅读:
    MySQL优化
    MySQL 的 SQL 操作
    笔记本电脑同时使用两个网络
    top
    logrotate
    正则表达式学习总结
    HttpClient parameter 和body 传输同时进行
    Node.js背景
    前后端分离的理解
    shiro 的subject 以及Context 对象的具体的含义。
  • 原文地址:https://www.cnblogs.com/QH-Jimmy/p/6569346.html
Copyright © 2011-2022 走看看