zoukankan      html  css  js  c++  java
  • 归并排序(C#实现)

    归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法。

    c#代码

     1         public static void MergeSort(int[] inputAray, int first, int end)
     2         {
     3             if (first < end)
     4             {
     5                 int midIndex = (first + end) / 2;
     6                 MergeSort(inputAray, first, midIndex);
     7                 MergeSort(inputAray, midIndex + 1, end);
     8                 MergeMethid(inputAray, first, midIndex, end);
     9             }
    10         }
    11 
    12         private static void MergeMethid(int[] inputAray, int first, int midIndex, int end)
    13         {
    14             int[] temp = new int[end - first + 1];
    15             int m = first;
    16             int n = midIndex + 1;
    17             int k = 0;
    18             while (m <= midIndex && n < end)
    19             {
    20                 if (inputAray[m] < inputAray[n])
    21                 {
    22                     temp[k] = inputAray[m];
    23                     k++;
    24                     m++;
    25                 }
    26                 else
    27                 {
    28                     temp[k] = inputAray[n];
    29                     k++;
    30                     n++;
    31                 }
    32             }
    33             while (m <= midIndex)
    34             {
    35                 temp[k] = inputAray[m];
    36                 k++;
    37                 m++;
    38             }
    39             while (n < end)
    40             {
    41                 temp[k] = inputAray[n];
    42                 k++;
    43                 n++;
    44             }
    45             for (k=0,m = first; m < end; k++,m++)
    46             {
    47                 inputAray[m] = temp[k];
    48             }
    49 
    50         }


    归并排序是稳定的排序。速度仅次于快速排序。时间复杂度O(nlgn)。

  • 相关阅读:
    MySQL数据库命令行界面不支持中文
    mysqldump使用方法(MySQL数据库的备份与恢复)
    MySQL性能测试初试(1)--sysbench
    composer安装
    Java关键字[static].md
    Docker容器
    Docker概述及安装
    Docker镜像
    定时任务[crontab]
    Linux下的curl工具
  • 原文地址:https://www.cnblogs.com/ByronsHome/p/3530678.html
Copyright © 2011-2022 走看看