归并排序 java 实现
来源:互联网 发布:卸载windows defender 编辑:程序博客网 时间:2024/06/05 07:53
/** * 归并排序 两个数组都是有序的 否则需要先先排序 * @param a * @param b */ private static void mergerSort(int [] a,int [] b) { int[] tempArray = new int[a.length+b.length];//创建临时接受数组 int tempCounter = 0; int firstIndex=0, secondIndex=0; while((firstIndex<a.length)&&(secondIndex<b.length)){ if (a[firstIndex] < b[secondIndex]) { tempArray[tempCounter] = a[firstIndex]; tempCounter++; firstIndex++; } else if (a[firstIndex] > b[secondIndex]) { tempArray[tempCounter] = b[secondIndex]; tempCounter++; secondIndex++; } else { tempArray[tempCounter] = a[firstIndex]; firstIndex++; tempCounter++; } } /** * 下面两种情况是当有一个数组已经完全放入了temp数组里面 * 已经失去比较对象,接下来的数字肯定是比前一个已经完全放入数组的最大的数还大,所以直接拷贝就可以了。 */ while (secondIndex < b.length) { tempArray[tempCounter] = b[secondIndex]; secondIndex++; tempCounter++; } while (firstIndex<a.length) { tempArray[tempCounter] = a[firstIndex]; firstIndex++; tempCounter++; } for (int j = 0; j < tempArray.length; j++) { System.out.print(tempArray[j]+" "); } } public static void main(String[] args) throws Exception { int[] a = new int[]{1,2,4,9}; int[] b = new int[]{2,4,8}; mergerSort(a, b); }
运行结果是:1 2 4 4 8 9
阅读全文
0 0
- 归并排序Java实现
- Java实现归并排序
- Java实现归并排序
- 归并排序Java实现
- 归并排序JAVA实现
- java实现归并排序
- 归并排序(java实现)
- 归并排序java实现
- Java实现归并排序
- 归并排序 java实现
- 归并排序Java实现
- 归并排序java实现
- Java实现归并排序
- Java实现归并排序
- Java实现归并排序
- JAVA实现归并排序
- java实现归并排序
- 归并排序 Java实现
- 调出任务管理器的快捷方式
- 数据流
- luogu2667 超级质数
- 用cmd删除大文件夹
- Thoughtwork面试经历
- 归并排序 java 实现
- bzoj 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪(DP)
- 10个开源云基础管理工具
- python学生管理系统
- Akka(23): Stream:自定义流构件功能-Custom defined stream processing stages
- leetcode-75-Sort Colors
- 最短路
- 数据库查询语言
- WebAPI开发中的定时处理