点击打开链接题目链接
Ultra-QuickSort
Time Limit: 7000MS
Memory Limit: 65536K
Total Submissions: 42347
Accepted: 15389
Description
In this problem, you have to analyze ...
分类:
其他好文 时间:
2014-09-22 17:29:02
阅读次数:
187
归并排序
O(NlogN),所以归并排序最坏情况能够达到快速排序的平均水准
需要额外的存储空间O(n)
1、对数据不断的分割,直到剩下一个一个的
2、合并数据,在合并的时候,其实是两个有序的数组,因此
这个过程是两个有序数组进行合并排序
// 归并排序
// O(NlogN),所以归并排序最坏情况能够达到快速排序的平均水准
// 需要额外的存储空间O(n)
...
分类:
其他好文 时间:
2014-09-22 03:03:21
阅读次数:
154
转自:http://blog.csdn.net/chenjin_zhong/article/details/6045659——————————————————————————————————————————————publicclassMergeSort{/***归并排序*简介:将两个(或两个以上)...
分类:
编程语言 时间:
2014-09-21 23:30:31
阅读次数:
222
题意:
给出N幢摩天大楼的位置和高度,有Q次查询,问在某点处能看见天空的角度范围。
分析:
一开始的想法是维护一个单调栈,首先离线数据并排序排序,然后左右扫两边。单调栈内大楼的高度要递减,然后判断栈顶元素是否比它的前一个更优,如果不是则出栈。但是如果栈顶元素比它前一个优,并不能保证是全局最优的。
正确的维护方法是保证单调栈内的大楼高度递减,而且要使得这些大楼的最高点构成一个类似凸包的形状,或者说是凸包的一部分,然后再判断栈顶元素和它前一个比是否更优,如果不是则出栈。这样最后的栈顶元素就是待查询点在某方向的视...
分类:
其他好文 时间:
2014-09-21 23:18:21
阅读次数:
307
第一题:题目大意:解一元一次方程(只有+-符号);解题过程:直接处理处两边的x的系数和常数项,字符串的处理即可。第二题:题目大意:求逆序对数。解题过程:直接归并排序。第三题:题目大意:多重背包。每件物品数较多。解题过程:二进制拆分物品数。。
分类:
其他好文 时间:
2014-09-21 11:29:30
阅读次数:
211
快速排序算法与归并排序很像,都是分治的思想。不同点在于归并排序算法是通过位置下区分两个区间,而快速排序算法是用值来区分两个区间。所以归并排序算法还需要合并的操作,而快速排序则不需要。快速排序算法最核心的地方在于:在区间中选择一个值pivot,让大于pivot的都在它的..
分类:
其他好文 时间:
2014-09-21 02:52:20
阅读次数:
254
Sort a linked list inO(nlogn) time using constant space complexity.思路:采用归并排序或者快速排序#include using namespace std;struct ListNode { int val; ListNo...
分类:
其他好文 时间:
2014-09-20 20:12:09
阅读次数:
230
注:凭记忆写的,可能不全,也不一定正确。一. 简答题1. new 和 malloc 的区别。2. hash冲突是指什么?怎么解决?给两种方法,写出过程和优缺点。3. 命中的概率是 0.25,若要至少命中一次的概率不小于 0.75,则至少需要几次?二. 算法设计题1. 用C/C++写一个归并排序。数据...
分类:
其他好文 时间:
2014-09-20 17:34:59
阅读次数:
187
经典的7种排序算法 原理C++实现
排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。
7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。
一、低级排序算法
1. 选择排序
排序过程:给定一个...
分类:
编程语言 时间:
2014-09-19 13:56:05
阅读次数:
336