归并排序——java实现
来源:互联网 发布:泰国打车软件 编辑:程序博客网 时间:2024/05/22 12:27
public class MergerSort {public int[] sort(int[] arrs){ if(arrs.length < 2){ return arrs; }// int mid = arrs.length % 2 == 0 ? arrs.length / 2 : (arrs.length - 1) / 2; int mid = arrs.length/2; int[] left = Arrays.copyOfRange(arrs, 0, mid); int[] right = Arrays.copyOfRange(arrs, mid, arrs.length); int[] lres = sort(left); int[] rres = sort(right); return merger(lres, rres); }public int[] merger(int[] lres,int[] rres){int[] b = new int[lres.length+rres.length];int l = 0;int r = 0;int i = 0; while(l<lres.length&&r<rres.length){if(lres[l]<=rres[r]){b[i] = lres[l];i++;l++;}else{b[i] = rres[r];i++;r++;}}if(l == lres.length){while(r < rres.length){b[i] = rres[r];i++;r++;}}if(r == rres.length){while(l < lres.length){b[i] = lres[l];i++;l++;}} return b;} public static void main(String[] args) {Random random = new Random();int[] msData = new int[11];String beforeSort = "";String afterSort = "";for(int i=0;i<msData.length;i++){ //随机生成11个排序数Integer a =random.nextInt(100);msData[i]= a;beforeSort = beforeSort + msData[i] + " ";}System.out.println(beforeSort);MergerSort ms = new MergerSort();msData = ms.sort(msData);for(int i=0;i<msData.length;i++){afterSort = afterSort + msData[i] + " ";}System.out.println(afterSort);}}
0 0
- 归并排序—java实现
- 归并排序——java实现
- 简单的归并排序—Java实现
- Java实现排序算法——归并排序
- 排序算法Java实现——归并排序
- 归并排序Java实现
- Java实现归并排序
- Java实现归并排序
- 归并排序Java实现
- 归并排序JAVA实现
- java实现归并排序
- 归并排序(java实现)
- 归并排序java实现
- Java实现归并排序
- 归并排序 java实现
- 归并排序Java实现
- 归并排序java实现
- Java实现归并排序
- devexpress gridview 保存、加载布局
- Unity shader 初探
- dom4j(5) 编码 命名空间处理
- 扩展C# String
- 控制台程序如何设置默认窗口位置?
- 归并排序——java实现
- android 动态加载控件
- 交际方法
- Pat(Advanced Level)Practice--1013(Battle Over Cities)
- mysql数据库的文件创建方式
- 解決 ASP.NET 跑在 x64 機器上無法連接 Oracle DB 的問題
- IE6 a href onclick 执行顺序 && IE6下a标签发ajax请求的深坑
- 多套日历的编码怎么设计数据表?
- 《App Store 审核指南》与《数据存储指南》