zoukankan      html  css  js  c++  java
  • 用JS实现的常见几种排序算法

    1.快速排序法

    function quickSort(a) {
                    if (a.length <= 1) {
                            return a;
                    }
                    var midLength = Math.floor(a.length / 2);
                    var midValue = a.splice(midLength,1);
                    var left = [];
                    var right = [];
                    for (var i = 0; i < a.length; i++) {
                            if (a[i] < midValue) {
                                    left.push(a[i]);
                            } else {
                                    right.push(a[i]);
                            }
                    }
                    return quickSort(left).concat(midValue,quickSort(right));
            }
            console.log(quickSort([1,5,3,6,2,4,0]));

    2.插入排序法

    function insertSort(a) {
                    var length = a.length;
                    var sortArray;
                    for (var i = 1; i < length; i++) {
                            for (var j = 0; j < i ; j++) {
                                    if (a[i] < a[j]) {
                                            sortArray = a[i];
                                            a[i] = a[j];
                                            a[j] = sortArray;
                                    }
                            }
                    }
                    return a;
            }
            console.log(insertSort([0,6,5,3,4,2,1,7]));

    3.冒泡排序

    function bubbleSort(a) {
                    var length = a.length;
                    var sortArray;
                    for (var i = 0; i < length-1; i++) {
                            for (var j = 0; j < length-i-1 ; j++) {
                                    if (a[j] > a[j+1]) {
                                            sortArray = a[j];
                                            a[j] = a[j+1];
                                            a[j+1] = sortArray;
                                    }
                            }
                    }
                    return a;
            }
            console.log(bubbleSort([2,1,3,6,5,4,7,0]));

    4.选择排序

     function selectSort(a) {
                    for (var i = 0; i < a.length; i++) {
                            var min = a[i];
                            var k = i;
                            for (var j = i + 1; j < a.length; j++) {
                                    if (min > a[j]) {
                                            min = a[j];
                                            k = j;
                                    }
                            }
                            a[k] = a[i];
                            a[i] = min;
                    }
                    return a;
            }
            console.log(selectSort([5,1,4,0,3,2,7,6]));
  • 相关阅读:
    山东省第三届ACM省赛The Best Seat in ACM Contest
    Rescue The Princess(2013年山东省第四届ACM大学生程序设计竞赛A题)
    自定义颜色(UIColor)
    调用主程序的委托
    设置View的背景颜色
    基本控件_UIImageView
    CGRect
    屏幕尺寸
    UIScrollView 原理
    设置将警告当做Error来对待
  • 原文地址:https://www.cnblogs.com/zhaodawei/p/4627251.html
Copyright © 2011-2022 走看看