在java项目中实现归并排序的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
归并排序算法:假设初始序列含有n个记录,首先将这n个记录看成n个有序的子序列,每个子序列长度为1,然后两两归并,得到n/2个长度为2(n为奇数的时候,最后一个序列的长度为1)的有序子序列。在此基础上,再对长度为2的有序子序列进行亮亮归并,得到若干个长度为4的有序子序列。如此重复,直到得到一个长度为n的有序序列为止。这种方法被称作是:2-路归并排序(基本操作是将待排序列中相邻的两个有序子序列合并成一个有序序列)。
算法实现代码如下:
package exp_sort;public class MergeSort { public static void Merge(int src_array[], int low, int high, int des_array[]) { int mid; int i, j, k; mid = (low + high) / 2; i = low; k = 0; j = mid + 1; // compare two list while (i <= mid && j <= high) { if (src_array[i] <= src_array[j]) { des_array[k] = src_array[i]; i = i + 1; } else { des_array[k] = src_array[j]; j = j + 1; } k = k + 1; } // if 1 have,cat while (i <= mid) { des_array[k] = src_array[i]; k = k + 1; i = i + 1; } while (j <= high) { des_array[k] = src_array[j]; k = k + 1; j = j + 1; } for (i = 0; i < k; i++) { src_array[low + i] = des_array[i]; } } public static void mergeSort(int src_array[], int low, int high, int des_array[]) { int mid; if (low < high) { mid = (low + high) / 2; mergeSort(src_array, low, mid, des_array); mergeSort(src_array, mid + 1, high, des_array); Merge(src_array, low, high, des_array); } } public static void main(String[] args) { // TODO Auto-generated method stub int array1[] = { 38, 62, 35, 77, 55, 14, 35, 98 }; int array2[] = new int[array1.length]; mergeSort(array1, 0, array1.length - 1, array2); System.out.println("\n----------after sort-------------"); for (int ii = 0; ii < array1.length; ii++) { System.out.print(array1[ii] + " "); } System.out.println("\n"); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机在java项目中实现归并排序的方法
后端开发2023-05-31
怎么在java 项目中使用归并排序算法
后端开发2023-05-31
Java排序算法之归并排序简单实现
后端开发2023-05-30
Go归并排序算法的实现方法
后端开发2024-04-02
Java 语言实现归并排序算法
后端开发2023-08-30
java怎么实现归并排序算法
后端开发2023-08-15
C++归并法+快速排序实现链表排序的方法
后端开发2024-04-02
如何在python中实现归并排序
后端开发2023-06-14
Java的堆排序、快速排序、归并排序怎么实现
后端开发2023-06-26
php实现归并排序算法的方法详解
后端开发2024-04-02
图解Java中归并排序算法的原理与实现
后端开发2024-04-02
如何在Java与Python实现一个归并排序算法
后端开发2023-05-31
归并排序的迭代实现方法是什么
后端开发2024-04-02
怎么在Java项目中实现一个堆排序算法
后端开发2023-05-31
在java项目中实现一个冒泡排算法的方法
后端开发2023-05-31
Java实现归并排序的示例代码
后端开发2024-04-02
如何在java项目中实现一个插入排序算法
后端开发2023-05-31
Python实现的归并排序算法示例
后端开发2022-06-04
利用java 怎么实现一个归并排序算法
后端开发2023-05-31
在Java项目中实现多线程并发编程的方法
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧