广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州什么是归并排序?_北大青鸟IT学校

作者:邓华发布时间:2021-06-14分类:Java技术浏览:934


导读:Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么,什么是归并排序?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么,什么是归并排序?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

1、基本思想

归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

2、代码实现


  1. /**

  2.  * 打印数组内容

  3.  * 

  4.  * @param a

  5.  */

  6. public static void saymsg(int[] src) {

  7.     for (int i = 0; i < src.length; i++) {

  8.         System.out.print(src[i]);

  9.         System.out.print(",");

  10.     }

  11.     System.out.println();

  12. }

public static void mergingSort(int[] data, int left, int right) { if (left < right) { // System.out.println(left+";"+right); int center = (left + right) / 2; mergingSort(data, left, center); mergingSort(data, center + 1, right); merge(data, left, center, right);


} }


public static void merge(int[] data, int left, int center, int right) { // System.out.println(left+";"+center+";"+right); int[] tmpArr = new int[data.length]; int mid = center + 1; int third = left; int tmp = left; while (left <= center && mid <= right) { if (data[left] <= data[mid]) { tmpArr[third++] = data[left++]; } else { tmpArr[third++] = data[mid++]; } } while (mid <= right) { tmpArr[third++] = data[mid++]; } while (left <= center) { tmpArr[third++] = data[left++]; } while (tmp <= right) { data[tmp] = tmpArr[tmp++]; } saymsg(data); }


public static void main(String[] args) { int[] src = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 }; System.out.println("原始数组排序:"); saymsg(src); if (src.length > 0) { mergingSort(src, 0, src.length - 1); } }


  1. 两个方法可以分开理解,第一个 是一个待比较排序组合,第二个是数值的比较


  2. ![](//atts.w3cschool.cn/attachments/image/20170727/1501127342130116.gif)

  3. *图片来自维基百科*

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

java6.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表