随笔分类 -  数据结构与算法

插入排序
摘要:插入排序的基本概念:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。一:时间复杂度最好情况下:序列升序排序,需进行(n-1)次比较最坏情况下:序列是降序排列,需进行n*(n-1)/2次比较因此,选择排序总的时间复杂度:O(n*n),故不适合对于数据量比较大的排序应用,一般用于少量元素的排序(通常为8个或以下)。二:算法稳定性选择排序具有稳定性。三:示例代码public class Insertion_Sort { public static int[] Sort(int[] arr) { ... 阅读全文
posted @ 2013-12-02 17:31 HPU---张振强 阅读(164) 评论(0) 推荐(0)
求n个数的最小公倍数 http://acm.hdu.edu.cn/showproblem.php?pid=2028
摘要:96298832013-11-20 10:41:39Accepted2028140MS5008K554 BJavajackLowest Common Multiple Plushttp://acm.hdu.edu.cn/showproblem.php?pid=2028Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27749Accepted Submission(s): 11198Problem Description求n个数的最小公倍数。In 阅读全文
posted @ 2013-11-20 10:50 HPU---张振强 阅读(1009) 评论(0) 推荐(0)
Dijkstra算法(单源最短路径)
摘要:Dijkstra算法(单源最短路径) 单源最短路径问题,即在图中求出给定顶点到其它任一顶点的最短路径。在弄清楚如何求算单源最短路径问题之前,必须弄清楚最短路径的最优子结构性质。一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必定是从k到s的最短路径。下面证明该性质的正确性。 假设P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,则有P(i,j)=P(i,k)+P(k,s)+P(s,j)。而P(k,s)不是从k到s的... 阅读全文
posted @ 2013-08-20 09:36 HPU---张振强 阅读(221) 评论(0) 推荐(0)
poj 1088 记忆化搜索
摘要:滑雪Time Limit:1000MSMemory Limit:65536KTotal Submissions:68012Accepted:25018DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9一个人可以从某个点滑向上... 阅读全文
posted @ 2013-08-09 11:11 HPU---张振强 阅读(160) 评论(0) 推荐(0)
C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
摘要:学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin2、cin.get()3、cin.getline()4、getline()5、gets()6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;cin>>a>>b;cout 阅读全文
posted @ 2013-07-30 14:19 HPU---张振强 阅读(259) 评论(0) 推荐(0)
HDU 中的数学题目
摘要://Made by syx//Time : 2010年8月14日 16:20:34//////1071 The area//可令抛物线表达式为y= a(x-x1)^2+y1;//直线表达式为y=kx+b;//面积可通过微积分来计算a(x-x1)^2+y1 -(kx+b)在x2到x3区间内的定积分的值则为面积结果。#include int main(){int n;scanf("%d",&n);while(n--){ double x0,y0,x1,y1,x2,y2,area=0; scanf("%lf %lf %lf %lf %lf %lf",& 阅读全文
posted @ 2013-07-30 14:18 HPU---张振强 阅读(285) 评论(0) 推荐(0)
ACM常用算法
摘要:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换第二阶 阅读全文
posted @ 2013-07-30 14:08 HPU---张振强 阅读(411) 评论(0) 推荐(0)
acm算法书籍收藏推荐
摘要:我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。学力学就没有这样的好事了(抱怨一下),除了论文就是论文,满篇公式,晦涩坚深,真不是给人看的(虽然我也没看过几篇)。在这里列出一些我看过或者准备看的算法书籍,以供参考。1. CLRS 算法导论算法百科全书,只做了前面十几章的习题,便感觉受益无穷。2. Algorithms 算法概论短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。不好也不坏的消息:我正在写习题的答案,已完成 阅读全文
posted @ 2013-07-30 14:07 HPU---张振强 阅读(502) 评论(0) 推荐(0)
转:经典ACM算法
摘要:实验一 统计数字问题实验二 最大间隙问题实验三 众数问题实验四 半数集问题实验五 集合划分问题实验六 最少硬币问题实验七 编辑距离问题 实验八 程序存储问题实验九 最优服务次序问题实验十 汽车加油问题实验十一 工作分配问题实验十二 0-1背包问题实验十三 最小重量机器设计问题实验十四 最小权顶点覆盖问题实验十五 集合相等问题实验十六 战车问题实验一 统计数字问题1、问题描述:一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中 阅读全文
posted @ 2013-07-30 14:05 HPU---张振强 阅读(431) 评论(0) 推荐(0)