堆排序堆排序_百度百科堆排序_维基百科堆_百度百科堆 (数据结构)_维基百科堆排序是和快排、归并排序一样常见的复杂度为o(nlogn)的算法,速度比较快。那么,要进行堆排序,首先要把n个数据进行最大堆化(也就是把整个数据整理成一个最大堆)这样子首元素就是数组最大的元素了。把它和最后的元素进行交换,那...
分类:
编程语言 时间:
2014-12-01 00:32:19
阅读次数:
287
上一篇讨论了链表的反转问题,这一篇讨论链表排序的问题1. 排序两个有序链表比较简单,属于归并排序,不再赘述时间复杂度O(n), 空间复杂度O(1) 1 ListNode *mergeList( ListNode *list1, ListNode *list2 ) { 2 if(!list1 ...
分类:
其他好文 时间:
2014-11-30 14:00:59
阅读次数:
132
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比...
分类:
编程语言 时间:
2014-11-30 00:19:29
阅读次数:
228
这个转移方程不好想,尤其是一段值的解是中间,不明觉厉。dp[i][j] 用i个邮局,覆盖前j个村庄的最小值。
还有就是区间dp的平行四边形优化,这个题的转移方程并不是“区间DP”,所以枚举状态要逆着(很花时间),且用一个邮局覆盖都是从0断开了相当于没有断开。
类比于石子归并,矩阵链乘等标准区间DP,其所需状态之前就已经获得,不用倒推
#include
#include
#incl...
分类:
其他好文 时间:
2014-11-28 21:29:24
阅读次数:
252
六大比较排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序和快速排序,伪代码与C语言实现
分类:
编程语言 时间:
2014-11-28 11:34:09
阅读次数:
273
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), ne...
分类:
编程语言 时间:
2014-11-26 23:59:34
阅读次数:
350
1 void merge_sort(int *A, int x, int y, int *T) 2 {//x为左端点,y为右端点 3 // 4 if(y-x= y) || (p = m || A[p] > A[q]时,将右半数组元素复制到临时空间19 T[i...
分类:
编程语言 时间:
2014-11-25 23:26:45
阅读次数:
298
http://blog.csdn.net/hguisu/article/details/7776068 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时....
分类:
编程语言 时间:
2014-11-25 18:12:37
阅读次数:
153