(精华)2020年8月28日 数据结构与算法解析(归并排序) 您所在的位置:网站首页 wildlifebuild怎么玩 (精华)2020年8月28日 数据结构与算法解析(归并排序)

(精华)2020年8月28日 数据结构与算法解析(归并排序)

2023-12-19 02:35| 来源: 网络整理| 查看: 265

1、归并排序(Merge Sort)

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。

1.1 算法描述 把长度为n的输入序列分成两个长度为n/2的子序列; 对这两个子序列分别采用归并排序; 将两个排序好的子序列合并成一个最终的排序序列。 1.2 动图演示

在这里插入图片描述

1.3 代码实现 /// /// 归并排序 /// public class Program { public static void Main(string[] args) { int[] array = { 43, 69, 11, 72, 28, 21, 56, 80, 48, 94, 32, 8 }; MergeSort(array, 0, array.Length - 1); ShowSord(array); Console.ReadKey(); } private static void ShowSord(int[] array) { foreach (var num in array) { Console.Write($"{num} "); } Console.WriteLine(); } public static void MergeSort(int[] array, int low, int high) { if (low < high) { int mid = (low + high) / 2; MergeSort(array, low, mid); MergeSort(array, mid + 1, high); Merge(array, low, mid, high); } } private static void Merge(int[] array, int low, int mid, int high) { int[] mergeArr = new int[high - low + 1]; int left = low; int right = mid + 1; int merge = 0; while (left


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有