zoukankan      html  css  js  c++  java
  • 基础排序算法

    排序算法

    交换数组元素

        function swap(arr, index1, index2) {
            var tmp = arr[index1];
            arr[index1] = arr[index2];
            arr[index2] = tmp;
        }
    

    冒泡排序

        function bubbleSort(arr) {
            if(arr.length <= 1) {return arr}
            for(var i = arr.length; i >= 2; i--) {
                for(var j = 0; j <= i-1; j++) {
                    if(arr[j] > arr[j+1]) {
                        swap(arr, j, j+1);
                    }
                }
            }
            return arr;
        }
    

    选择排序

        function selectSort(arr) {
            if(arr.length <= 1) {return arr}
            var min;
            for(var i = 0; i < arr.length-1; i++) {
                min = i;
                for(var j = i+1; j < arr.length; j++) {
                    if(arr[min] < arr[j]) {
                        min = j
                    }
                    swap(arr, i, min)
                }
            }
            return arr;
        }
    

    插入排序

        function insertSort(arr) {
            if(arr.length <= 1) {return arr}
            var tmp, inner;
            for(var outer = 1; outer < arr.length; outer++) {
                temp = arr[outer];
                inner = outer;
                while(inner > 0 && (arr[inner-1] >= temp)) {
                    arr[inner] = arr[inner-1];
                    --inner;
                }
                arr[inner] = temp;
            } 
            return arr;
        }
    

    快速排序

        function qSort(arr) {
            if(arr.length == 0) {
                return [];
            }
            var lesser = [];
            var greater = [];
            var pivot = arr[0];
            for(var i = 0; i < arr.length; i++) {
                if(arr[i] < pivot) {
                    lesser.push(arr[i])
                } else {
                    greater.push(arr[i])
                }
            }
            return qSort(lesser).concat(pivot,qSort(greater));
        }
  • 相关阅读:
    标识类型模式
    脏检查和快照的故事
    Hibernate入门案例及增删改查
    Oracle函数解析
    Oracle基础及三层分页查询
    java解析xml文档(dom)
    TCP和UDP的聊天
    java线程同步
    试题分析(第三套)
    java线程的简单实现及方法
  • 原文地址:https://www.cnblogs.com/yfife/p/8595788.html
Copyright © 2011-2022 走看看