zoukankan      html  css  js  c++  java
  • 归并排序

    将两个有序数组合并成一个有序数组。

    利用分治算法。

    代码实现:

     1 function mergeSort(arr1, arr2) {
     2     var begin1 = 0,    // arr1比较数据的索引,会依次递增
     3         begin2 = 0,    // arr2比较数据的索引,会依次递增
     4         end1 = arr1.length,    
     5         end2 = arr2.length,
     6         arr3 = [];
     7 
     8     // 当比较的索引都没有到数组末尾的时候,循环比较
     9     while (begin1 < end1 && begin2 < end2) {
    10         if (arr1[begin1] < arr2[begin2]) {
    11             arr3.push(arr1[begin1++]);
    12         } else if (arr1[begin1] > arr2[begin2]) {
    13             arr3.push(arr2[begin2++]);
    14         } else {    // 相等的情况,都要push和索引递增
    15             arr3.push(arr1[begin1++]);
    16             arr3.push(arr2[begin2++]);
    17         }
    18     }
    19     // 当arr1未到数组末尾时,将剩余数据push
    20     if (begin1 < end1) {
    21         for (var i=begin1; i<end1; i++) {
    22             arr3.push(arr1[i]);
    23         }
    24     }
    25     // 当arr2未到数组末尾时,将剩余数据push
    26     if (begin2 < end2) {
    27         for (var j=begin2; j<end2; j++) {
    28             arr3.push(arr2[j]);
    29         }
    30     }
    31 
    32     return arr3;
    33 }
    Scoop It and Enjoy the Ride!
  • 相关阅读:
    Solr部署准备
    linux 安装SVN
    构建高性能web站点--读书大纲
    webapi请求
    搭建git服务器
    git常用知识整理
    Ruby on Rail 开发入门
    Ruby on rail 开发准备
    PHP模拟请求雅虎竞标商品加价
    JAVA httpURLConnection curl
  • 原文地址:https://www.cnblogs.com/Ruth92/p/5427851.html
Copyright © 2011-2022 走看看