1 //插入排序 2 int a[n]; 3 for(int i=2;ia[i]) 8 { 9 a[j+1]=a[j];10 j--;11 }12 a[j+1]=s;13 ...
分类:
编程语言 时间:
2015-02-12 22:39:01
阅读次数:
233
代码如下: 1 public class MergeSort { 2 3 public static void sort(int [] A,int p, int r) 4 { 5 if(p X)16 j--;17 ...
分类:
编程语言 时间:
2015-01-29 23:49:57
阅读次数:
218
归并排序算法是用分治策略实现对n个元素进行排序的算法。 其基本思想是:将待排序的元素分成大小大致相同的两个子集合,分别对2个子集合进行排序,最终将排序好的子集合合并成为所要求的排好序的集合。递归版本算法(不完全版本):1 public static void mergeSort(Compara...
分类:
编程语言 时间:
2015-01-22 15:13:14
阅读次数:
220
Sort a linked list in O(n log n)
time using constant space complexity.
MergeSort对于链表的排序,实现了就地排序的同时,时间复杂度和空间复杂度都达到了基于比较的排序的最优值,因此归并排序是链表排序的最佳排序方式。
/**
* Definition for singly-linked list.
* str...
分类:
其他好文 时间:
2015-01-15 16:01:52
阅读次数:
193
Sort a linked list in O(n log n)
time using constant space complexity.
#include
#include
typedef struct ListNode{
int val;
struct ListNode *next;
}ListNode;
ListNode *mergesort(ListNode *...
分类:
其他好文 时间:
2015-01-13 17:42:46
阅读次数:
113
和分治思想的第一次相遇
当问题的规模是可以划分的时候,分治的算法往往是很有效的:
不断分割问题的规模,直到子问题的规模足够小便直接求解,之后不断整合子问题的解得到更大规模的解,最后得到完全解。
归并排序就是分治算法的一个简单的例子。
可能有人觉得快速排序也是属于分治算法,但我不这么觉得,因为快速排序是先得到大问题的解的一部分,再靠子问题来完成解,
并没有整合子问题这一步,所以硬要说的...
分类:
编程语言 时间:
2015-01-08 02:09:41
阅读次数:
290
package?cn.hcm;
public?class?MergeSort?{
?/**
??*?合并两个有序数组
??*?@param?source
??*?@param?start
??*?@param?mid
??*?@param?end
??*?@param?sourceCopy
??*/
?priva...
分类:
编程语言 时间:
2015-01-07 11:18:18
阅读次数:
174
一:起因
(1)包括冒泡算法、快排算法、插入排序算法等;还有基于外部排序的归并排序(以二路归并排序为例 )
但是基本上在一个数量级上;
(2)
mergesort (归并排序) 可以应用在外部排序,这与基于内存的quicksort(快速排序)略有不同,他们的算法复杂度都可以达到O(nlogn)
(3)mergesort 是稳定的排序算法,需要额外的空间开销O(n)...
分类:
其他好文 时间:
2015-01-06 17:52:40
阅读次数:
241
https://oj.leetcode.com/problems/sort-colors/http://blog.csdn.net/linhuanmars/article/details/24286349publicclassSolution{
publicvoidsortColors(int[]A)
{
//SolutionA:
sortColors_CountColor(A);
//SolutionB:
//sortColors_MergeSort(A,0,A.length-1);
}
///////..
分类:
其他好文 时间:
2015-01-04 19:37:46
阅读次数:
167
本文是对JDK6中Collections.sort方法的源码解析,也可以看作是对Comparison method violates its general contract!的后续分析。在JDK6中,该方法底层使用的是经过优化后的归并排序,废话不多说,直接看源码。public static void sort(List list, Comparator c) {
Object[] a = l...
分类:
其他好文 时间:
2015-01-02 14:42:04
阅读次数:
225