gvim 安装pathogen
2015-09-13 21:16
274 查看
public class MergeSort { private static void mergeSort(Comparable[] data,Comparable[] tmpArray, int left, int right){ if(left < right){ int center = (left + right) / 2; mergeSort(data, tmpArray, left, center); mergeSort(data, tmpArray, center + 1, right); merge(data, tmpArray, left,center + 1, right); } } private static void merge(Comparable[] data, Comparable[] tmpArray, int leftPos, int rightPos, int rightEnd){ int leftEnd = rightPos - 1; int tmpPos = leftPos; int numElements = rightEnd - leftPos + 1; while(leftPos <= leftEnd && rightPos <= rightEnd) if(data[leftPos].compareTo(data[rightPos]) <= 0) tmpArray[tmpPos++] = data[leftPos++]; else tmpArray[tmpPos++] = data[rightPos++]; while(leftPos <= leftEnd) tmpArray[tmpPos++] = data[leftPos++]; while(rightPos <= rightEnd) tmpArray[tmpPos++] = data[rightPos++]; for(int i = 0; i < numElements; i++, rightEnd--) data[rightEnd] = tmpArray[rightEnd]; } public static void mergeSort(Comparable[] data){ Comparable[] tmpArray = new Comparable[data.length]; mergeSort(data,tmpArray,0,data.length - 1); } public static void main(String[] args){ Comparable[] a = new Comparable[30]; for(int i = 0; i < a.length; i++) a[i] = (int) (Math.random() * 100); for(int i = 0; i < a.length; i++) System.out.print(a[i] + " , "); System.out.println(""); mergeSort(a); for(int i = 0; i < a.length; i ++) System.out.print(a[i] + " , "); } }
相关文章推荐
- 机器学习中的数学:强大的矩阵奇异值分解(SVD)及其应用
- 数据型数据库redis
- 多线程
- C语言初步接触
- linux_磁盘管理与文件系统
- PreTranslateMessage作用和使用方法
- hdu5443(2015 ACM/ICPC Asia Regional Changchun Online )
- NSFileManager
- 漏洞,安全网址大全
- 《Windows服务器配置与管理》------文件系统管理
- Git之远程仓库
- 设计模式C++实现(8)——代理模式
- 设计模式C++实现(7)——外观模式、组合模式
- 百度UEditor本地化配置 笔记
- 第5章 泛型
- super关键字
- 【codevs2476】购买贺年卡 排序+贪心
- equals使用
- 兔子--android:gravity与android:layout_gravity的区别
- 宠物跟随效果