java_归并排序
来源:互联网 发布:社会网络分析大数据 编辑:程序博客网 时间:2024/06/18 17:08
package first;//归并排序public class MergeSort { //产生随机数组的方法 public static int[] getarray() { int[] nums = new int[10]; for (int i = 0; i < nums.length; i++) { nums[i] = (int) (Math.random()*100); } return nums; } //归并方法 public static int[] Sort(int[] nums, int low, int high) { int mid = (low + high) / 2; if (low < high) { Sort(nums, low, mid);// 左边 Sort(nums, mid + 1, high);// 右边 Merge(nums, low, mid, high);//左右归并 } return nums; } //排序方法 public static void Merge(int[] nums, int low, int mid, int high) { int[] temp = new int[high - low + 1]; int i = low;//左指针 int j = mid + 1;//右指针 int k = 0; //通过比较把较小的数移到数组中 while (i <= mid && j <= high) { if (nums[i] < nums[j]) temp[k++] = nums[i++]; else temp[k++] = nums[j++]; } //把右边剩余的数移到数组中 while(j<=high) temp[k++] = nums[j++]; //把左边剩余的数移到数组中 while(i<=mid) temp[k++] = nums[i++]; //把新数组中的数覆盖原数组 for(int m=0;m < temp.length;m++) nums[m+low] = temp[m]; } public static void main (String args[]) { int nums[]=getarray(); System.out.println("随机数组为:"); for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+" "); } Sort(nums, 0, nums.length-1); System.out.println("排序后:"); for (int i = 0; i < nums.length; i++) { System.out.print(nums[i]+" "); } }}
阅读全文
0 0
- java_归并排序
- JAVA_算法_归并排序
- java_排序
- Java_排序
- 归并排序-归并排序
- Java_比较和排序
- java_选择排序
- java_冒泡排序
- JAVA_希尔排序
- JAVA_数组排序方法
- JAVA_快速排序
- java_冒泡排序
- java_排序_查找
- Java_快速排序
- java_堆排序
- java_文件名排序
- 归并和归并排序
- 归并与归并排序
- Codeforces Problem 332B
- 使用cookie实现跨域系统单点登录
- CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
- 值传递String
- CTF小练
- java_归并排序
- 笑出腹肌的程序猿搞笑趣图
- 开源许可证教程
- Hive之——自定义函数
- matlab的stretchlim函数
- UVALive 4886|HDU 3777|Page Count|暴力
- –定义一个圆类(Circle),其所在的包为bzu.info.software;定义一个圆柱类Cylinder,其所在的包为bzu.info.com;定义一个主类A,其所在的包也为bzu.info.
- 【BZOJ2734】【HNOI2012】集合选数(状态压缩,动态规划)
- R语言绘图-散点图