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

莆田网站制作价格物流网站开发公司

莆田网站制作价格,物流网站开发公司,wordpress 导航栏,网站建设需求调研表一 简介 归并排序(Merge Sort) 的基本思想是#xff1a; 首先将待排序文件看成 n n n 个长度为1的有序子文件#xff0c; 把这些子文件两两归并#xff0c; 得到 n 2 \frac{n}{2} 2n​ 个长度为 2 的有序子文件#xff1b; 然后再把这 n 2 \frac{n}{2} 2n​ 个有序的子…一 简介 归并排序(Merge Sort) 的基本思想是 首先将待排序文件看成 n n n 个长度为1的有序子文件 把这些子文件两两归并 得到 n 2 \frac{n}{2} 2n​ 个长度为 2 的有序子文件 然后再把这 n 2 \frac{n}{2} 2n​ 个有序的子文件两两归并 如此反复直到最后得到一个长度为 n n n 的有序文件为止 这种排序方法称为二路归并排序。 在本文中我们讨论的归并排序特指二路归并排序. 看一个示意图: 二 实现过程 归并排序的核心操作是将数组中前后相邻的两个有序序列归并为一个有序序列. 以java为例看一个demo。 public class MergeSort {public static void main(String[] args) {Integer[] array new Integer[]{30,45,10,30,50};System.out.println(归并排序初始顺序\n Arrays.toString(array));mergeSort(array);System.out.println(归并排序最后顺序\nArrays.toString(array));}static void mergeSort(Integer[] arr) {sort(arr, 0, arr.length - 1);}/**** 将两个有序序列归并为一个有序序列*/static void sort(Integer[] arr, int low, int high) {if (low high) {return;}int mid low (high - low) / 2;sort(arr, low, mid);sort(arr, mid 1, high);merge(arr, low, mid, high);}static void merge(Integer[] arr, int low, int mid, int high) {//定义了一个临时数组int[] temp new int[high - low 1];int i low, j mid 1, k 0;while (i mid j high) {temp[k] arr[i] arr[j] ? arr[i] : arr[j];}while (i mid) {//将原数组从下标 low~middle 中剩余的复制到 temptemp[k] arr[i];}while (j high) {//将原数组从下标 middle1 ~ high 中剩余的复制到 temptemp[k] arr[j];}for (i 0; i k; i) {arr[low i] temp[i];}} }程序运行结果 归并排序算法 归并排序算法可看作递归算法 虽然有的书写成不是递归算法同样实现了。 三 步骤 第一步 一趟归并排序的基本思想是 在某趟归并中 设各子文件长度为len(最后一个子文件的长度可能会小于len), 则归并前 R [ 1.. n ] R[1..n] R[1..n] 共有 n l e n \frac{n}{len} lenn​ 个有序子文件。 调用归并操作对子文件进行归并时 必须对子文件的个数可能是奇数、最后一个子文件和长度可能小于 l e n len len 这两种特殊情况进行处理 若子文件个数为奇数则最后个子文件无需和其他子文件归并若子文件个数为偶数则要注意最后一对子文件中后一个子文件的区间上界为 n n n. 第二步 归并排序的过程需要进行 l o g 2 log_{2} log2​ n {n} n 趟。 每一趟排序的操作就是将两个有序子文件进行归并 而每一对有序子文件归并时 记录的比较次数均小于等于记录的移动次数 记录移动的次数均等于文件中记录的个数 即每一趟归并的时间复杂度为 O ( n ) O(n) O(n)。 因此归并排序的时间复杂度为 O ( n l o g 2 O(nlog_{2} O(nlog2​ n n n ) ) ). 从上述例子可以看出 空间复杂度为 O ( n ) O(n) O(n) 归并排序是稳定的 因为在每两个有序子文件 归并时 若分别在两个有序子文件中出现有相同关键字的记录时 归并排序算法能够使前一个子文件中同一关键字的记录被先复制后一子文件中同一关键字的记录后被复制从而确保它们的相对次序不变。 四 归并算法的优缺点 优点 适合于大规模数据量并且要求稳定。在基于比较的算法中是最高效率。 缺点 需要数据集长度的辅助空间 在一定程度上增加了空间复杂度。 如果初始数据几乎填满整个内存归并排序可能无法工作。 综上归并算法是应用于大规模数据集最好的排序算法。
http://www.zqtcl.cn/news/502104/

相关文章:

  • 加强校园网站建设方案做核酸检测收费标准
  • 主机开通成功网站正在建设中中国建设银行登录官网
  • 12306的网站是哪个公司做的wordpress搜索页分类
  • 众筹网站的分析与设计wordpress 主题制作教程
  • 淘宝放单网站怎么做app制作公司哪个好
  • 地税城市维护建设税网站是什么意思订阅号怎么开通小程序
  • 网站添加二级域名wordpress火车头免登录发布
  • 大美工设计网站官网中山网站建设找丁生
  • 做算命网站标准版网站制作
  • 建设网站是普通办公吗温州 网站 公司
  • 哪里做外贸网站汉服网站开发背景
  • 建模外包网站企业代码查询入口
  • wordpress快速仿站视频教程广州知名网站建设哪家好
  • 楼盘网站开发网站服务理念
  • 私人ftp服务器seo整站如何优化
  • 做网站的工作叫什么美工需要会哪些软件
  • 阿克苏网站建设咨询海南跨境免税电商入驻流程
  • 母婴网站模板在线设计网站海报
  • 网站关键词优化公司哪家好如何跟客户沟通网站建设
  • 山西省经济建设投资公司网站滁州网站建设
  • 优秀设计网站哈尔滨vi设计公司
  • 如何建购物网站论坛类的网站怎样做
  • 河南省建设工程招投标协会网站安卓开发软件工具
  • 中国空间站wordpress无法选择服务器配置
  • 郑州家居网站建设服务公司asp网站助手
  • 做网站一般几个人WordPress 中英文翻译
  • 有没有兼职做网站的化工企业建网站
  • 石家庄展厅设计公司黑帽seo怎么做网站排名
  • 网站开发维护成本计算wordpress 无法访问
  • 永久免费做网站营销软文广告