第一题:题目大意:解一元一次方程(只有+-符号);解题过程:直接处理处两边的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
题目:有四个文件,每个文件中存有100万个int型整数,内存限制1M,该如何最优地得到四个文件的交集数,也就是在四个文件都出现的数的个数?
我的想法:因为内存限制1M,也就是1024*1024个字节,小于一个文件中所有数所占的存储100 0000*4,所以文件中的数没办法一次装到内存。采用外部排序、归并等方法实现。
具体:
1、最开始应该是对每个大文件进行外部排序,也就是n次...
分类:
其他好文 时间:
2014-09-19 22:35:36
阅读次数:
261
经典的7种排序算法 原理C++实现
排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。
7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。
一、低级排序算法
1. 选择排序
排序过程:给定一个...
分类:
编程语言 时间:
2014-09-19 13:56:05
阅读次数:
336
在数组中的两个数字如果前面一个大于后面的数字,则这两个数字组成一个逆序对,输入一个数组,求出这个数组的逆序对的总数。
思路:利用变形的归并排序
分类:
其他好文 时间:
2014-09-19 07:42:55
阅读次数:
194
题目:uva 10003 Cutting Sticks
题意:给出一根长度 l 的木棍,要截断从某些点,然后截断的花费是当前木棍的长度,求总的最小花费?
分析:典型的区间dp,其实和石子归并是一样的,花费就是石子的和,那么久不用多说了。
AC代码:
#include
#include
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-09-18 18:53:24
阅读次数:
201
归并排序是效率还是比较高的算法。其中的分治法是常用的一种解决问题的方法,现在流行的云计算其实就是一种分治法的应用。
所谓的分治法,字面解释就是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个思想在实际工作中的作用非常大,特别是处理大数据和做复杂运算的时候。
归并排序的基础是归并操作merge,即将...
分类:
其他好文 时间:
2014-09-17 21:59:02
阅读次数:
312