博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并排序实现
阅读量:6953 次
发布时间:2019-06-27

本文共 1399 字,大约阅读时间需要 4 分钟。

public void Merge(int[] a, int start, int mid, int end)        {            int[] tmp = new int[end - start + 1];    // tmp是汇总2个有序区的临时区域            int i = start;            // 第1个有序区的索引            int j = mid + 1;        // 第2个有序区的索引            int k = 0;                // 临时区域的索引            while (i <= mid && j <= end)            {                if (a[i] <= a[j])                {                    tmp[k++] = a[i++];                }                else                {                    tmp[k++] = a[j++];                }            }            while (i <= mid)            {                tmp[k++] = a[i++];            }            while (j <= end)            {                tmp[k++] = a[j++];            }            // 将排序后的元素,全部都整合到数组a中。            for (i = 0; i < k; i++)            {                a[start + i] = tmp[i];            }            tmp = null;        }        public void MergeSort(int[] a, int start, int end)        {            if (a == null || start >= end)                return;            int mid = (end + start) / 2;            MergeSort(a, start, mid); // 递归排序a[start...mid]            MergeSort(a, mid + 1, end); // 递归排序a[mid+1...end]            // a[start...mid] 和 a[mid...end]是两个有序空间,            // 将它们排序成一个有序空间a[start...end]            Merge(a, start, mid, end);        }

归并排序(合并排序)的实现。使用分治法用递归来实现排序。

转载于:https://www.cnblogs.com/asenyang/p/6915411.html

你可能感兴趣的文章
密码学协议 门限
查看>>
true or false in JavaScript
查看>>
Android学习笔记6:使用Intent1
查看>>
js实现继承的几种方式
查看>>
[LintCode/LeetCode] Two Strings are Anagrams/Valid Anagram
查看>>
Consul入门03 - 注册服务
查看>>
[Centos]necessary tools for newbie
查看>>
前端临床手札——单元测试
查看>>
Java IO : File
查看>>
JavaScript Ajax与Comet——“进度事件”的注意要点
查看>>
[单刷APUE系列]第四章——文件和目录[2]
查看>>
MySQL Replication
查看>>
JavaScript数组去重总结
查看>>
MVVM_Android-CleanArchitecture
查看>>
iOS开发-协议Protocol&代理delegate
查看>>
【系统架构师修炼之道】(4):绪论——Zachman 框架
查看>>
Foxify v0.10.7 发布,基于 TypeScript 的 Node 框架
查看>>
Python数据结构——双端队列
查看>>
GitHub 项目推荐:用深度学习让你的照片变得美丽 ...
查看>>
2.HtmlAgilityPack 爬取优酷电影名进阶(所有分类+多线程)
查看>>