当前位置: 首页 > wzjs >正文

网站建设dns解析设置seo线下培训班

网站建设dns解析设置,seo线下培训班,全国小学网站建设,app优化网站目录 1 归并排序的基本概念 2 算法步骤 2-1 分解阶段 2-2 合并阶段 3 代码实现 3-1 C#代码示例(该代码在unity环境下) 3-2 C代码示例 1 归并排序的基本概念 归并排序(Merge Sort)是一种经典的分治算法,由约翰…

目录

 1  归并排序的基本概念

 2  算法步骤

 2-1  分解阶段

 2-2  合并阶段

 3  代码实现

 3-1  C#代码示例(该代码在unity环境下)

 3-2  C++代码示例


 1  归并排序的基本概念

归并排序(Merge Sort)是一种经典的分治算法,由约翰・冯・诺伊曼在 1945 年提出。它的核心思想是将一个大问题分解为多个相似的小问题,然后分别解决这些小问题,最后将小问题的解合并起来得到原问题的解。

 2  算法步骤

归并排序主要分为两个阶段:分解阶段和合并阶段。

 2-1  分解阶段
  • 分解过程:从数组的中间位置将数组分成两个子数组,不断递归地对这两个子数组进行同样的分解操作,直到每个子数组中只有一个元素(因为单个元素的数组本身就是有序的)。
  • 示例:假设有数组 [8, 4, 5, 7, 1, 3, 6, 2],首先将其从中间分成 [8, 4, 5, 7][1, 3, 6, 2],然后对这两个子数组继续分解,如 [8, 4, 5, 7] 会被分解为 [8, 4][5, 7],依此类推,直到每个子数组只有一个元素。
 2-2  合并阶段
  • 合并过程:将两个有序的子数组合并成一个有序的数组。比较两个子数组的第一个元素,将较小的元素放入新数组,然后移动该子数组的指针,继续比较,直到其中一个子数组的元素全部放入新数组,最后将另一个子数组剩余的元素依次放入新数组。
  • 示例:假设有两个有序子数组 [4, 8][5, 7],比较 4 和 5,将 4 放入新数组,然后比较 8 和 5,将 5 放入新数组,接着比较 8 和 7,将 7 放入新数组,最后将 8 放入新数组,得到合并后的有序数组 [4, 5, 7, 8]

 3  代码实现

 3-1  C#代码示例(该代码在unity环境下)
        private int GetAndIncrement(int[] arr, ref int index){int value = arr[index];index++;return value;}private int[] Sort(int[] left, int[] right){//先准备一个新数组var array = new int[left.Length + right.Length];var leftIndex = 0;var rightIndex = 0;for (var i = 0; i < array.Length; i++){//左侧放完了,直接放对面if (leftIndex >= left.Length)array[i] = GetAndIncrement(right, ref rightIndex);else if (rightIndex >= right.Length) array[i] = GetAndIncrement(left, ref leftIndex);else if (left[leftIndex] < right[rightIndex])array[i] = GetAndIncrement(left, ref leftIndex);else array[i] = GetAndIncrement(right, ref rightIndex);}return array;}private int[] Merge(int[] array){if (array.Length < 2) return array;int mid = array.Length / 2;int[] left = new int[mid];int[] right = new int[array.Length - mid];for (int i = 0; i < array.Length; i++){if (i < mid) left[i] = array[i];else right[i - mid] = array[i];}return Sort(Merge(left), Merge(right));}

测试程序

 3-2  C++代码示例
#include <iostream>
#include <vector>int GetAndIncrement(const std::vector<int>& arr, int& index) {int value = arr[index];index++;return value;
}std::vector<int> Sort(const std::vector<int>& left, const std::vector<int>& right) {std::vector<int> array(left.size() + right.size());int leftIndex = 0;int rightIndex = 0;for (size_t i = 0; i < array.size(); ++i) {if (leftIndex >= left.size()) {array[i] = GetAndIncrement(right, rightIndex);} else if (rightIndex >= right.size()) {array[i] = GetAndIncrement(left, leftIndex);} else if (left[leftIndex] < right[rightIndex]) {array[i] = GetAndIncrement(left, leftIndex);} else {array[i] = GetAndIncrement(right, rightIndex);}}return array;
}std::vector<int> Merge(const std::vector<int>& array) {if (array.size() < 2) {return array;}size_t mid = array.size() / 2;std::vector<int> left(array.begin(), array.begin() + mid);std::vector<int> right(array.begin() + mid, array.end());return Sort(Merge(left), Merge(right));
}int main() {std::vector<int> array = {12, 34, 54, 2, 3};std::cout << "排序前的数组: ";for (int num : array) {std::cout << num << " ";}std::cout << std::endl;std::vector<int> sortedArray = Merge(array);std::cout << "排序后的数组: ";for (int num : sortedArray) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

运行结果:


文章转载自:

http://bfWciH1T.qkqjz.cn
http://nDqs46vn.qkqjz.cn
http://o4XEBwWK.qkqjz.cn
http://rVQmx4Ie.qkqjz.cn
http://A9Fbmpu1.qkqjz.cn
http://Y0nfnQCu.qkqjz.cn
http://vdqMdByC.qkqjz.cn
http://RlRA26vu.qkqjz.cn
http://Mc4lYPpW.qkqjz.cn
http://cpAbYT9y.qkqjz.cn
http://l4FGhyQC.qkqjz.cn
http://KWQpcWm2.qkqjz.cn
http://3wmaqDwn.qkqjz.cn
http://gF79yBpO.qkqjz.cn
http://5CXP49eH.qkqjz.cn
http://Ss64kAH2.qkqjz.cn
http://4GgSThPg.qkqjz.cn
http://o2JM0Iy5.qkqjz.cn
http://3pkunObv.qkqjz.cn
http://AAziKguv.qkqjz.cn
http://JJSFkmeZ.qkqjz.cn
http://XMf1KIFX.qkqjz.cn
http://vukanCVY.qkqjz.cn
http://QZbMNyYA.qkqjz.cn
http://A9pEd3VU.qkqjz.cn
http://1OvaLKf7.qkqjz.cn
http://0Txxo2uX.qkqjz.cn
http://Vj55rImz.qkqjz.cn
http://2R3rev69.qkqjz.cn
http://ljWSnSWr.qkqjz.cn
http://www.dtcms.com/wzjs/610453.html

相关文章:

  • 怎么修复网站死链格子网wordpress主题
  • 把网站放到服务器上网站信息系统建设
  • 湖南自考网站建设与管理长春高端网站建设
  • 上海网站设计成功柚v米科技百度营销官网
  • 网站套程序邢台企业网站建设
  • 自己做短视频网站机关单位网站建设管理制度
  • 广州从化网站建设wordpress研究
  • jquery网站后台模板网站设计论文前言怎么写
  • 北流网站制作南京做代账会计在哪个网站上找
  • 网站维护好的方法公众号平台官网网页版
  • 潍坊小企业网站建设泉州网站制作企业
  • 网站解析加速Wordpress如何加联盟广告
  • 最新的网站开发技术一套金蝶erp系统多少钱
  • 成都网站建设新闻网站建设的功能定位
  • 宁波网站建设网站开发哪家网站建设公司好
  • 那些做环保网站的好处常州市城乡建设局网站
  • 国内好的设计网站湖北省住房和建设厅网站
  • 专业设计网站有哪些wordpress两个侧边栏
  • 鱼台做网站多少钱提升网站转化率
  • 手机网站主机租用网站如何制作网页
  • 找公司做网站先付全款吗做p2p投资理财的网站
  • 天津有哪些好的做网站公司电子商务网站建设html
  • 上海模板建站公司厦门做点击付费网站
  • 做团购网站视频旅游景区网站模板
  • 一级域名网站建设wordpress 导航标签
  • 做网站办贷款上海中风险地区什么时候能解除
  • saas建站系统是怎么实现的ui毕业设计代做网站
  • 淄博网站营销与推广建筑公司资质等级分几级
  • 外贸网站图片素材wordpress新建留言板
  • 合肥金融网站设计网站开发职业前景