摘要: 二分查找. (代码可在五行以内)#include<stdio.h>#include<stdlib.h>int a[]={10,22,42,51,56,63,78,99,102,118};int binary_search(int low, int high, int key) { if(low > high) return -1; int mid = low + (high - low) / 2; if(a[mid] == key) return mid; return (a[mid] > key ? binary_search(low, mid-1, ke 阅读全文
posted @ 2013-03-07 10:46 KOKO's 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换第二阶 阅读全文
posted @ 2013-03-07 10:14 KOKO's 阅读(286) 评论(0) 推荐(0) 编辑