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!
  • 相关阅读:
    bootstrap模态框
    css 禁止选中文本
    Python Flask Tornado
    JS canvas标签动态绘制图型
    JS 跳转页面
    JS 计算器
    JS
    柱状图中最大的矩形
    在不使用第三个变量的情况下交换两个数的值
    springboot配置静态资源访问的2种方式
  • 原文地址:https://www.cnblogs.com/Ruth92/p/5427851.html
Copyright © 2011-2022 走看看