- 浏览: 84881 次
文章分类
最新评论
-
bailangfei3344:
自我介绍 -
regionwar:
你好,转化为人为:1、不该加锁的不要加锁:局部变量,单线程占用 ...
关于java锁机制的优化 -
danni505:
希望能交流:
msn:danni-505#hotmail.co ...
关于java锁机制的优化 -
ouspec:
收藏的东西不错。
TOP500 -
willpower:
The idea behind is e-sync IO do ...
Rethink the sync
MergeSort is a sample solution from the idea Dive - and - Conquer.
I show my code below:
java 代码
- public class MergeSort {
- public static void sort(int[] array, int i, int j) {
- if (j-i == 1) {
- if (array[i]>array[j]) {
- int tmp = array[i];
- array[i] = array[j];
- array[j] = tmp;
- }
- } else {
- int mid = (i + j - 1) / 2;
- sort(array, i, mid);
- sort(array, mid+1, j);
- int[] newArray = merge(array, i, mid, mid+1, j);
- int k = 0;
- for (int index = i; index<=j; index++) {
- array[index] = newArray[k];
- k++;
- }
- }
- }
- public static int[] merge(int[] array, int i, int m, int j, int n) {
- int[] newArray = new int[n-i+1];
- int k = 0;
- while ((i<=m) && (j<=n)) {
- if (array[i]<array[j]) {
- newArray[k] = array[i];
- i++;
- k++;
- } else {
- newArray[k] = array[j];
- j++;
- k++;
- }
- }
- if (i>m) {
- for ( ; j<=n; j++) {
- newArray[k++] = array[j];
- }
- } else {
- for ( ; i<=m; i++) {
- newArray[k++] = array[i];
- }
- }
- return newArray;
- }
- public static void main(String[] args) {
- int[] array = {1, 4, 2, 5, 2, 6, 3, 0};
- sort(array, 0, array.length - 1);
- for (int i=0; i<array.length; i++) {
- System.out.print(array[i] + " ");
- }
- }
- }
发表评论
-
字符编码笔记:ASCII,Unicode和UTF-8 (引用)
2009-01-07 10:39 924字符编码笔记:ASCII,Unicode和UTF-8 阮一峰 ... -
How to set up a simple LRU cache using LinkedHash
2008-11-03 18:05 1278How to set up a simple LRU cach ... -
Scalability?
2008-10-07 14:07 825严格上讲,scalability还没有正式定义, 甚至有人觉得 ... -
Cray Reminiscences
2007-08-29 15:54 790Kirk Pepperdine's attendence of ... -
lock-free
2007-06-18 22:06 9891. http://www.ibm.com/developer ... -
解决java.lang.OutOfMemoryError: PermGen space(转帖)
2007-06-05 18:07 3159解决方案就是:在启动服务器时加上指定PermGen区域的内存大 ... -
Performance...
2007-06-05 15:11 978« I used to work for... | Mai ... -
数据仓库
2007-04-18 10:38 1116... -
Expressions Transform
2007-04-13 11:13 1385Expressions, Conversion and Eva ... -
Java cleanup code
2007-04-03 12:20 1291Java shutdown hook guarantee th ... -
Java performance tunning
2007-04-03 11:37 936http://www.javaperformancetunin ... -
Running IE from command line
2007-04-03 10:58 1109Here's a simple way you can ru ... -
Unicode and UTF8
2007-04-03 10:27 907What is Unicode? Unicode provid ... -
Daemon Thread Notes
2007-04-03 09:16 26491. 只要程式中的non-Daemon thread都結束了. ... -
How to know the main class of a jar file?
2007-04-02 15:18 1028Easy. Here is an implementation ... -
The best chinese BAT tutorial(from www.boofee.net/bigfee/)
2007-03-27 11:58 1329如何创建批处理文件? 不要听了批处理文件就感到很神气 ... -
Basics - Binary search
2007-03-26 15:53 964java 代码 public class Bin ... -
Graph data structure
2007-03-23 12:04 8721. adjacent matrix good for bor ... -
Functional Programming For The Rest of Us
2007-03-23 10:39 1284I like connect beautiful artic ... -
Functional Programming For The Rest of Us
2007-03-23 10:24 1062I like connect beautiful artic ...
相关推荐
mergesort java implement~!
### 合并排序(MergeSort)知识点解析 #### 一、合并排序算法介绍 合并排序是一种采用分治法策略的高效排序算法。其基本思想是将待排序的序列分为两个子序列,对这两个子序列分别进行排序,再将排好序的子序列合并成...
在"MergeSort.rar"压缩包中,我们很可能会找到一个C++实现归并排序的例子。现在,我们将深入探讨归并排序的原理、步骤以及C++实现的关键细节。 归并排序的工作原理: 1. 分解:首先,将待排序的序列分为两个相等或...
归并排序(Mergesort)是一种经典的排序算法,它基于分治法(Divide and Conquer)的设计理念。在C++中实现归并排序,我们可以遵循以下步骤: 1. **理解分治法**:分治法是将一个大问题分解成若干个规模较小的相同...
MergeSort,也称为归并排序,是一种高效的、稳定的排序算法,基于分治法(Divide and Conquer)策略。本文将深入探讨MergeSort的基本原理、C++实现以及其在实际应用中的优势与局限性。** **一、MergeSort基本原理**...
这个压缩包提供了基于C语言实现的排序算法,特别是MergeSort(归并排序)的实例。 **归并排序(Merge Sort)** 归并排序是一种采用分治法(Divide and Conquer)的排序算法。它的基本思想是将大问题分解为小问题来解决...
用非递归算法实现合并排序,具有高效的特征,从底向上
ShiftSort是一种排序算法,它与经典的MergeSort相比,在某些特定情况下可以提供更快的性能,并且具有自适应和稳定的特点。让我们深入探讨这个算法及其与MergeSort的差异。 首先,MergeSort是一种分治策略的排序算法...
在这个场景中,"MergeSort_Demo.rar_DEMO_Mergeso" 提供了一个用C语言实现的归并排序算法的演示程序。下面我们将详细探讨归并排序的原理、步骤以及在C语言中的实现。 一、归并排序的基本原理 1. 分治法:归并排序...
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 算法步骤: 1. 申请空间,使其大小为两个已经排序序列之...
在编程领域,分治策略是一种高效且广泛应用的算法设计方法,而Mergesort(归并排序)则是分治策略的一个经典实例。归并排序利用了分治的思想,将大问题分解为小问题来解决,然后合并这些小问题的解以得到原问题的解...
本题目的核心是利用归并排序(Mergesort)算法来实现逆序数的计算,以达到O(n log n)的时间复杂度,避免平方级别的效率消耗。 首先,我们要理解什么是逆序对。在一组排序的整数序列中,如果一个较大的数字位于较小...
C语言实现mergeSort.rar
Python手撕算法MergeSort
python 排序算法之MergeSort
在IT领域,排序算法是计算机科学中的核心概念,特别是在数据结构和算法分析中。本文将深入探讨两种在C语言中实现的排序算法:插入排序(Insertion Sort)和归并排序(Merge Sort)。这两种方法虽然原理不同,但都能...
本代码实现对大量无序字符串的排序。采用mergesort。时间复杂度为O2。输出结果自动保存在一个text文件中。