博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法:归并排序
阅读量:5282 次
发布时间:2019-06-14

本文共 980 字,大约阅读时间需要 3 分钟。

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

归并排序,其的基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序了?

可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。

利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为:

1)划分子表
2)合并半子表

package cn.hncu;import javax.swing.text.DefaultEditorKit.CopyAction;public class MergeSort {    public static void main(String[] args) {        int a[]= new int[100];        for(int i=0;i
mid){ //左序列已完成合并,剩下的是右序列(照搬) for(int i=r;i<=right;i++){ b[k]=a[i]; k++; } }else{ for(int i=p;i<=mid;i++){ b[k++]=a[i]; } } } private static void copyArray(int[] a, int[] b, int left, int right) { for(int i=left;i<=right;i++){ a[i]=b[i]; } }}

转载于:https://www.cnblogs.com/webmen/p/5739370.html

你可能感兴趣的文章
设计模式-命令模式
查看>>
SharePoint 2013的100个新功能之内容管理(一)
查看>>
2013 - Lost connection to MySQL server at 'reading initial communication packet' 错误解决
查看>>
Openwrt 初探
查看>>
拉格朗日乘子
查看>>
less语法
查看>>
如何重启IIS进程
查看>>
PowerDesigner中Table视图同时显示Code和Name
查看>>
JavaScript parser
查看>>
Jenkins参数化构建插件,实现构建前输入自定义参数
查看>>
2、Java并发性和多线程-多线程的优点
查看>>
HTTP协议初识
查看>>
如何制作漂亮的母版
查看>>
mysql存储过程的参数名不要跟字段名一样 (血淋淋的代价)
查看>>
J2EE面试题集锦(附答案)
查看>>
2013项目总结
查看>>
Android 将文件保存到SD卡中
查看>>
作业三-----词频统计
查看>>
自定义html的attributes
查看>>
二级导航下拉菜单
查看>>