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!
  • 相关阅读:
    循环语句
    JAVA-数据类型、变量、常量
    JAVA——程序流程控制——循环语句——for循环(打印三角形)
    循环语句
    JAVA基础学习1
    新手上路
    mysql内置函数之事务
    mysql内置功能
    mysql内置函数之视图
    pymysql模块
  • 原文地址:https://www.cnblogs.com/Ruth92/p/5427851.html
Copyright © 2011-2022 走看看