java实现合并排序算法,java归并排序算法排序数组

  java实现合并排序算法,java归并排序算法排序数组

  什么是合并排序?

  归并是通过递归和分治技术将数据序列分成越来越小的半子表,然后对半子表进行排序,最后通过递归将排序后的半子表归并成越来越大的有序序列。

  核心理念

  将两个有序序列合并成一个大的有序序列。通过递归,逐层归并,也就是归并。

  (推荐教程:java快速入门)

  实施代码:

  导入Java . util . arrays;

  /**

  * @作者神-蒋

  * @日期2020年1月13日

  */

  //合并排序,时间复杂度为O(N*logN),空间复杂度为O(N)

  公共类MergeSort {

  public static void merge sort(int[]arr,int start,int end) {

  //各个击破的结束条件

  if (start=end) {

  返回;

  }

  //确保开始和结束的中间值不会溢出。

  int mid=start((end-start)1);

  //递归排序和合并

  MergeSort(arr,start,mid);

  MergeSort(arr,mid 1,end);

  Merge(arr,start,mid,end);

  }

  //合并

  public static void Merge(int[] arr,int start,int mid,int end) {

  int[]temp=new int[end-start 1];

  int p1=start

  int p2=mid 1;

  int p=0;

  while (p1=mid p2=end) {

  if (arr[p1] arr[p2]) {

  temp[p]=arr[p2];

  }否则{

  temp[p]=arr[P1];

  }

  }

  while (p1=mid) {

  temp[p]=arr[P1];

  }

  while (p2=end) {

  temp[p]=arr[p2];

  }

  for(int I=0;I温度长度;i ) {

  arr[I start]=temp[I];

  }

  }

  公共静态void main(String[] args) {

  int[] a={2,4,6,1,3,7,9,8,5 };

  MergeSort(a,0,a . length-1);

  system . out . println(arrays . tostring(a));

  }

  }运行结果:

  如何解决写爬虫IP受阻的问题?立即使用。

  推荐视频教程:java视频教程以上是如何用java实现合并和排序的细节。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: