Sort a linked list inO(nlogn) time using constant space complexity.本题利用归并排序即可归并排序的核心是将两部分合成一部分,故开始要将链表分成两部分,利用快慢两个指针,当快指针跑到链表尾部时,慢指针恰好在中间,故可以将链表分成两部分然...
                            
                            
                                分类:
其他好文   时间:
2014-06-21 12:20:11   
                                阅读次数:
188
                             
                         
                    
                        
                            
                            
                                分治法的典例
当练手了
神奇的是,使用inplace_merge按说应该是O(n)的算法,但是用sort nlogn的算法反而更快
先上快排版
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int SIZE = 10000+10;
const double INF = 1...
                            
                            
                                分类:
其他好文   时间:
2014-06-18 07:17:22   
                                阅读次数:
170
                             
                         
                    
                        
                            
                            
                                归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
                            
                            
                                分类:
其他好文   时间:
2014-06-17 23:47:38   
                                阅读次数:
299
                             
                         
                    
                        
                            
                            
                                接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0;for(i=1;i=1;i--) siftd...
                            
                            
                                分类:
其他好文   时间:
2014-06-17 20:36:51   
                                阅读次数:
298
                             
                         
                    
                        
                            
                            
                                接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(logi),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。n=0;
for(i=1;i<=m;i++)
{
n++;
h[n]=a[i..
                            
                            
                                分类:
其他好文   时间:
2014-06-17 17:54:05   
                                阅读次数:
177
                             
                         
                    
                        
                            
                            
                                接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log
 i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。
n=0;
for(i=1;i)
{
    n++;
    h[ n]=a[ i];  //或者写成scanf("%d",&h[ n]);
   ...
                            
                            
                                分类:
其他好文   时间:
2014-06-17 16:20:33   
                                阅读次数:
322
                             
                         
                    
                        
                            
                            
                                归并排序(merging Sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort)...
                            
                            
                                分类:
其他好文   时间:
2014-06-17 16:19:56   
                                阅读次数:
232
                             
                         
                    
                        
                            
                            
                                写了好久,终于写成了.第一次zai leecode错题,题目质量很高,适合面试,与 1.归并排序是稳定的,在java中 Arrays.sort(a);中对于对象的排序就是归并排序。对于原子类型数据使用的是快排。 2.算法复杂度,我们都知道归并排序的最好最坏最差复杂度为nlogn,空间复杂度为n,在链...
                            
                            
                                分类:
编程语言   时间:
2014-06-15 00:02:45   
                                阅读次数:
402
                             
                         
                    
                        
                            
                            
                                Question:Sort a linked list inO(nlogn) time 
using constant space complexity.Solution:Merge sort.找到链表的中间的那个ListNode. 1 /** 2 
* Definition for singly-l....
                            
                            
                                分类:
其他好文   时间:
2014-06-12 17:59:34   
                                阅读次数:
285