Java基础总结 - 数组排序之归并排序
2017-10-22 18:36
435 查看
Java基础总结 - 数组排序之归并排序
这篇文章只是把大学记的笔记整理到博客,方便自己查看,不保证权威性(•̀ᴗ•́)و ̑̑
这篇文章只是把大学记的笔记整理到博客,方便自己查看,不保证权威性(•̀ᴗ•́)و ̑̑
import java.util.Arrays; /** * 归并排序是先把数组拆散到知道一个元素,然后在进行合并操作。 * * 1 1 1 1 1 1 * 1 1 1 1 1 1 * 1 1 1 1 1 1 * 1 1 1 1 1 1 * 1 1 1 11 1 * 1 1 1 1 1 1 * 1 1 1 1 1 1 * * @author CL-computer * */ public class MergeSort { public static void main(String[] args) { int[] nums = {1,5,7,1,6,9,8,5}; mergeSortMetohd(nums); System.out.println(Arrays.toString(nums)); } public static void mergeSortMetohd(int[] nums) { int[] temp = new int[nums.length]; divide(nums,0,nums.length-1,temp); } public static void divide(int[] nums, int start, int end, int[] temp) { int mid = (start+end)>>1; if(start<end){ divide(nums,start,mid,temp); divide(nums,mid+1,end,temp); merge(nums,start,mid,end,temp); } } public static void merge(int[] nums, int start, int mid, int end, int[] temp) { int x = start; int y = mid+1; int index = start; while(x<=mid&&y<=end){ if(nums[x]<nums[y]){ temp[index++] = nums[x++]; }else{ temp[index++] = nums[y++]; } } while(x<=mid){ temp[index++] = nums[x++]; } while(y<=end){ temp[index++] = nums[y++]; } index = start; while(start<=end){ nums[start++]=temp[index++]; } } }
相关文章推荐
- java基础八(数组排序总结)
- 黑马程序员:Java基础总结----数组排序问题
- Java基础总结 - 数组排序之插入排序
- Java基础总结 - 数组排序之选择排序
- 黑马程序员 java基础 函数 数组 查找与排序总结
- Java基础总结 - 数组排序之交换排序
- 黑马程序员_java的语言基础组成最终篇(对第四课函数和数组的总结)
- Java数组排序总结(冒泡,选择,插入,希尔)
- (转) Java 数组排序总结 ( 冒泡,选择,插入,希尔)
- Java数组排序总结(冒泡,选择,插入,希尔)
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
- 黑马程序员:Java基础总结-----Arrays 数组的工具类
- 黑马程序员--Java基础之语法和数组总结
- 黑马程序员_Java基础(数据类型、Java操作符、数组排序方法)
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
- 黑马程序员 Java基础<一> 数组及排序
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- 关于java数组排序的总结
- Java数组排序总结(冒泡,选择,插入,希尔)
- 黑马程序员_Java基础 数组、数组工具类、文档注释总结