- 浏览: 86810 次
-
文章分类
最新评论
-
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 969字符编码笔记:ASCII,Unicode和UTF-8 阮一峰 ... -
How to set up a simple LRU cache using LinkedHash
2008-11-03 18:05 1299How to set up a simple LRU cach ... -
Scalability?
2008-10-07 14:07 862严格上讲,scalability还没有正式定义, 甚至有人觉得 ... -
Cray Reminiscences
2007-08-29 15:54 826Kirk Pepperdine's attendence of ... -
lock-free
2007-06-18 22:06 10301. http://www.ibm.com/developer ... -
解决java.lang.OutOfMemoryError: PermGen space(转帖)
2007-06-05 18:07 3179解决方案就是:在启动服务器时加上指定PermGen区域的内存大 ... -
Performance...
2007-06-05 15:11 1001« I used to work for... | Mai ... -
数据仓库
2007-04-18 10:38 1148... -
Expressions Transform
2007-04-13 11:13 1429Expressions, Conversion and Eva ... -
Java cleanup code
2007-04-03 12:20 1312Java shutdown hook guarantee th ... -
Java performance tunning
2007-04-03 11:37 974http://www.javaperformancetunin ... -
Running IE from command line
2007-04-03 10:58 1145Here's a simple way you can ru ... -
Unicode and UTF8
2007-04-03 10:27 942What is Unicode? Unicode provid ... -
Daemon Thread Notes
2007-04-03 09:16 26671. 只要程式中的non-Daemon thread都結束了. ... -
How to know the main class of a jar file?
2007-04-02 15:18 1057Easy. Here is an implementation ... -
The best chinese BAT tutorial(from www.boofee.net/bigfee/)
2007-03-27 11:58 1352如何创建批处理文件? 不要听了批处理文件就感到很神气 ... -
Basics - Binary search
2007-03-26 15:53 1005java 代码 public class Bin ... -
Graph data structure
2007-03-23 12:04 9151. adjacent matrix good for bor ... -
Functional Programming For The Rest of Us
2007-03-23 10:39 1454I like connect beautiful artic ... -
Functional Programming For The Rest of Us
2007-03-23 10:24 1079I like connect beautiful artic ...
相关推荐
- 在JavaScript中,我们可以创建一个名为`mergeSort`的函数,接收一个数组作为参数。 - 利用递归检查数组长度,如果长度小于等于1,则返回数组本身,因为长度为1的数组已经是有序的。 - 分割数组:找到中间索引,...
基于c++的归并排序算法。排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时间复杂度可以达到...
C语言实现mergeSort.rar
在Python编程语言中,归并排序(Mergesort)是一种高效的、稳定的排序算法,它采用了分治(Divide and Conquer)策略。这个算法的基本思想是将大问题分解为小问题来解决,然后合并这些小问题的解,最终得到大问题的...
在Java中,我们可以定义一个名为`mergeSort3Way`的函数来实现三路归并排序。这个函数接受一个整型数组作为参数,然后调用递归方法`sort3Way`来执行实际的排序工作。`sort3Way`函数中,我们首先检查数组的长度,如果...
MergeSort-MergeSort
MergeSort,也称为归并排序,是一种高效的、稳定的排序算法,基于分治法(Divide and Conquer)策略。本文将深入探讨MergeSort的基本原理、C++实现以及其在实际应用中的优势与局限性。** **一、MergeSort基本原理**...
public void mergeSort(int[] arr, int left, int right) { if (left ) { int mid = (left + right) / 2; mergeSort(arr, left, mid); // 递归排序左半部分 mergeSort(arr, mid + 1, right); // 递归排序右半...
在"MergeSort.rar"压缩包中,我们很可能会找到一个C++实现归并排序的例子。现在,我们将深入探讨归并排序的原理、步骤以及C++实现的关键细节。 归并排序的工作原理: 1. 分解:首先,将待排序的序列分为两个相等或...
**合并排序(MergeSort)算法详解** 合并排序是一种基于分治思想的排序算法,由美国计算机科学家John von Neumann在1945年提出。它将一个大问题分解为两个或更多的小问题,分别解决后再合并结果,最终得到原问题的...