数据结构 归并排序的实现
来源:互联网 发布:东南大学软件学院 编辑:程序博客网 时间:2024/06/01 08:42
比较简单,还是直接上代码吧。
package Sort;
import java.util.Arrays;
import java.util.Random;
public class MergeSort {
public void sort(int array[]){
if(array.length== 0 ||array.length == 1)
return;
int mid = array.length/2;
int a[] = Arrays.copyOfRange(array, 0, mid);
int b[] = Arrays.copyOfRange(array, mid, array.length);
sort(a);
sort(b);
merge(a,b,array);
}
public void merge(int[] a,int[] b,int [] array){
int i=0;
int j=0;
int k=0;
while (i<a.length && j<b.length){
if(a[i] < b[j]){
array[k]= a[i];
i++;
k++;
}else{
array[k]= b[j];
j++;
k++;
}
}
for(;i<a.length;++i){
array[k++] = a[i];
}
for(;j<b.length;++j){
array[k++] = b[j];
}
}
public int[] generateRandArray(int n){
int array[] = new int[n];
Random rand= new Random();
for (int i = 0; i < array.length; i++) {
array[i] = rand.nextInt();
}
return array;
}
public boolean isSorted(int [] array){
for(int i=0;i<array.length-1;i++){
if(array[i+1]<array[i])
return false;
}
return true;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[];
int i=0;
MergeSort mergeSort = new MergeSort();
array = mergeSort.generateRandArray(10000);
mergeSort.sort(array);
while(i<10000){
System.out.println(array[i]);
i++;
}
if(mergeSort.isSorted(array) == false){
System.out.println("error");
}else{
System.out.println("succeed");
}
}
}
- 数据结构 归并排序的实现
- 数据结构归并排序实现
- 数据结构 二路归并排序的实现
- 数据结构之归并排序的Java实现
- 数据结构之归并排序的实现
- 【数据结构】中归并排序的实现
- 【数据结构与算法】【排序】归并排序的代码实现
- 数据结构算法】--【排序】:归并排序实现源码
- java数据结构排序之归并排序实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- 归并排序的实现
- DefaultServlet和JspServlet
- Java环境快速搭建(服务管理器)
- MFC下载网页简单实现
- 办公室的窗外风景不错--续1
- 数据结构 插入排序的实现
- 数据结构 归并排序的实现
- CListCtl控件实现左键双击事件响应
- xml文件 DOM编程
- 最近找到一个很好的 API CODE 网站,分享一下
- 返回字符串中的单词 及其起始和结束位置(今天面试题)
- 有向图强连通分量的Tarjan算法
- 余敏洪励志演讲
- Web原型设计工具:Axure RP Pro
- 处女作