[每周一算法]归并排序
来源:互联网 发布:破解苹果mac密码 编辑:程序博客网 时间:2024/05/29 02:05
public class MergeSort {long theArray[];public void doMerge() {recMergeSort(new long[theArray.length], 0, theArray.length-1);}//把两个有序数组合并一个有序数组/* * lower */private void merge(long[] workSpace, int lower, int high, int upperBound) {int k = 0;int lowerBound = lower;int mid = high - 1;int n = upperBound - lowerBound + 1;while(lower <= mid && high <= upperBound) {if(theArray[lower] < theArray[high]) {workSpace[k++] = theArray[lower++];} else {workSpace[k++] = theArray[high++];}}while(lower <= mid) {workSpace[k++] = theArray[lower++];}while(high <= upperBound) {workSpace[k++] = theArray[high++];}//覆盖原来的那些数组for(int j = 0; j < n; j++) {theArray[j+lowerBound] = workSpace[j];}}//后序排序,从小到大不断合并有序数组public void recMergeSort(long[] workSpace, int lowerBound, int upperBound) {if(lowerBound == upperBound) return;else {int mid = (lowerBound + upperBound) / 2;recMergeSort(workSpace, lowerBound, mid);recMergeSort(workSpace, mid+1, upperBound);merge(workSpace, lowerBound, mid+1, upperBound);}}public long[] getTheArray() {return theArray;}public void setTheArray(long[] theArray) {this.theArray = theArray;}}
- [每周一算法]归并排序
- [每周一算法]快速排序
- 一、排序算法 归并排序
- 分治算法一(归并排序)
- 每日一算法之归并排序
- Java之归并排序算法(一)
- 一天一算法之归并排序
- 常用排序算法总结(一)----冒泡排序,归并排序
- 排序算法-归并排序
- 排序算法------归并排序
- 排序算法-归并排序
- 排序算法---归并排序
- 排序算法--归并排序
- 排序算法--归并排序
- 排序算法-归并排序
- 排序算法--归并排序
- 排序算法--归并排序
- 排序算法:归并排序
- js判断键盘按键
- 复制HICON的小函数
- boost库 shared_ptr (复习用,无参考价值)
- JAVA获取系统进程
- 没有所谓的兄弟,不过只是一个玩伴
- [每周一算法]归并排序
- Spring任务调度实战之Quartz Cron Trigger
- 来到csdn
- 自定义对话框dialog的建立
- 只是还不知道
- Class.forName( )你搞懂了吗
- 屏幕截图,不用API
- 什么是业务流程管理BPM
- c#集合类总结