今天看啥  ›  专栏  ›  OSC开源社区

时间复杂度为O (nlogn)的排序算法

OSC开源社区  · 公众号  · 程序员  · 2023-12-01 18:30
作者:京东云开发者-京东物流 王奕龙链接:https://my.oschina.net/u/4090830/blog/10277308归并排序归并排序遵循分治的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后合并这些子问题的解来建立原问题的解,归并排序的步骤如下:划分:分解待排序的 n 个元素的序列成各具 n/2 个元素的两个子序列,将长数组的排序问题转换为短数组的排序问题,当待排序的序列长度为 1 时,递归划分结束合并:合并两个已排序的子序列得出已排序的最终结果归并排序的代码实现如下: private void sort(int[] nums, int left, int right) { if (left >= right) { return; } // 划分 int mid = left + right >> 1; sort(nums, left, mid); sort(nums, mid + 1, right); // 合并 merge(nums, left, mid, right); } private void merge(int[] nums, int ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照