zoukankan      html  css  js  c++  java
  • 常见排序算法(上)

     1 //1. 冒泡排序
     2 var bubbleSort = function(arr) {
     3     for (var i = 0; i < arr.length; i++) {
     4         var flag = true;
     5         for (var j = 0; j < arr.length - i - 1; j++) {
     6             if (arr[j] > arr[j + 1]) {
     7                 flag = false;
     8                 arraySwap(arr, j, j + 1);
     9             }
    10         }
    11         if (flag) {
    12             break;
    13         }
    14     }
    15     return arr;
    16 };
    17 
    18 //2. 选择排序
    19 var selectionSort = function(arr) {
    20     for (var i = 1; i < arr.length - 1; i++) {
    21         var min = arr[i],
    22             minIndex = i;
    23         for (var j = i + 1; j < arr.length; j++) {
    24             if (arr[j] < min) {
    25                 min = arr[j];
    26                 minIndex = j;
    27             }
    28         }
    29         arraySwap(arr, i, minIndex);
    30     }
    31     return arr;
    32 };
    33 
    34 //3. 插入排序
    35 var insertionSort = function(arr) {
    36     for (var i = 1; i < arr.length; i++) {
    37         var temp = arr[i],
    38             j = i - 1;
    39         while (temp < arr[j] && j > -1) {
    40             arr[j + 1] = arr[j];
    41             j--;
    42         }
    43         arr[j + 1] = temp;
    44     }
    45     return arr;
    46 };
    47 
    48 //4. 快速排序
    49 var quickSort = function(arr, start, end) {
    50     if (start >= end) {
    51         return arr;
    52     }
    53     var index = partition(arr, start, end);
    54     quickSort(arr, start, index - 1);
    55     quickSort(arr, index + 1, end);
    56     return arr;
    57 };
    58 
    59 var partition = function(arr, start, end) {
    60     var temp = arr[start];
    61 
    62     while (start < end) {
    63         while (start < end && arr[end] >= temp) {
    64             end--;
    65         }
    66         arr[start] = arr[end];
    67 
    68         while (start < end && arr[start] <= temp) {
    69             start++;
    70         }
    71         arr[end] = arr[start];
    72     }
    73 
    74     arr[start] = temp;
    75     return start;
    76 };
  • 相关阅读:
    Viewpager的用法
    Android上下文菜单
    Android开机自启动程序
    微信小程序踩过的坑
    Sublime Text 配置python文件
    Pandas速查手册中文版
    scrapy架构设计分析
    爬虫服务集群处理nginx返回504
    phantomjs 无法打开https网站
    Selenium判断获取的元素是否可见(display:none)
  • 原文地址:https://www.cnblogs.com/huoteng/p/5005825.html
Copyright © 2011-2022 走看看