归并排序-java

原创 2018年04月15日 10:45:10

时间复杂度nlgn

归并排序{



public static void main(String [] args){
// TODO自动生成方法存根
int [] a = {1,4,7,2,5,8,3,6,9};
排序(一);
for(int i = 0; i <a.length; i ++){//输出排序结果
System.out.print(a [i]);
}


} private static void sort(int [] a){ // TODO自动生成的方法存根int r = a.length - 1; int p = 0; merge_sort(A,P,R); } private static void merge_sort(int [] a,int p,int r){ // TODO自动生成的方法存根int q; 如果(r> p){ q =(p + r)/ 2; merge_sort(A,P,Q); merge_sort(A,Q + 1,R); megre(A,P,Q,R); } }



























private static void megre(int [] a,int p,int q,int r){
// TODO自动生成的方法存根
int [] L = new int [q-p + 1];
int [] R = new int [rq];
int n = 0;
int i = 0;
int j = 0;
for(int m = p; m <= q; m ++){
L [n] = a [m];
N + = 1;
}
n = 0;
for(int m = q + 1; m <= r; m ++){
R [n] = a [m];
N + = 1;
}
{try {
for(int k = p; k <= r; k ++){
if(i <L.length && j <R.length && L [i] <= R [j]){
a [k] = L [i]
I + = 1;
} else if(i <L.length && j <R.length && L [i]> R [j]){
a [k] = R [j];
J + = 1;
} else if(i <L.length && j> = R.length){
a [k] = L [i];
I + = 1;
} else if(i> = L.length && j <R.length){
a [k] = R [j];
J + = 1;
}
}
} catch(ArrayIndexOutOfBoundsException e){
System.out.println(“数组越界”);
} } }



版权声明: https://blog.csdn.net/qq_41484460/article/details/79947293

Java单链表归并排序

概念归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。归并排序基本原理通过对若干个有...
  • bug_moving
  • bug_moving
  • 2017-02-24 08:53:59
  • 1469

泛型归并排序(java 语言实现)

以下实例实现了 1. 实现了Comparable 接口的基本类型的泛型排序,2. 复杂或者说自定义对象的泛型排序,使用 Comparator 接口定制的比较器泛型归并排序主要代码package com...
  • stuShan
  • stuShan
  • 2016-04-22 10:57:25
  • 592

【排序算法】归并排序原理及Java实现

归并排序就是利用归并的思想实现的排序方法。而且充分利用了完全二叉树的深度特性,因此效率比较高。其基本原理如下:对于给定的一组记录,利用递归与分治技术将数据序列划分成为越来越小的半子表,在对半子表排序,...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-04-27 17:35:43
  • 17825

单向链表归并排序 Java

单向链表归并排序 use Java 链表的关键在于递归的时候中间位置的确定,方法是:用两个指针p,f 遍历链表,p走一步而f走两步;当f走完的时候p走到链表的一半! 这让我烧绳子那道逻辑题。 ...
  • stephenluu
  • stephenluu
  • 2014-04-10 18:20:17
  • 3777

归并排序详解——思路分析以及核心代码(java)实现...非递归实现

归并排序的java实现。 归并排序非递归实现。 最优美的归并排序实现。
  • QwQ________
  • QwQ________
  • 2016-04-25 13:17:36
  • 909

递归和迭代两种方式实现归并排序(Java版)

递归版package MergeSort;import Utils.SortUtils; /** * 归并排序递归版 * @author liguodong */public class Dem...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015-07-26 21:43:32
  • 3029

[排序算法]--归并排序的Java实现

归并排序(2-路归并):归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。 下面先看...
  • u010853261
  • u010853261
  • 2017-02-06 16:14:50
  • 2010

归并排序的递归与非递归实现Java

public static int[] sort(int[] nums, int low, int high) { int mid = (low + high) / 2; ...
  • lll1204019292
  • lll1204019292
  • 2016-08-28 16:20:33
  • 629

【Java常用排序算法】归并排序(二路归并排序)

归并排序 二路归并排序 Java实现
  • donggua3694857
  • donggua3694857
  • 2017-02-27 23:17:10
  • 3125

算法(第四版)学习笔记之java实现归并排序

归并排序思想:将一个数组分成两部分分别排序(使用递归),然后将结果合并起来,即将最后两个有序的数组归并成一个更大的有序数组。 时间复杂度O(n) = NlogN 归并排序最吸引人的性质是它能保证将任意...
  • l243225530
  • l243225530
  • 2015-07-24 18:43:33
  • 903
收藏助手
不良信息举报
您举报文章:归并排序-java
举报原因:
原因补充:

(最多只允许输入30个字)