基本算法
ych19871020
这个作者很懒,什么都没留下…
展开
-
二分查找
二分查找在排好序的数组中查找一个数的复杂度是log(n),所以不管面试还是做acm经常会用到或变形,比如百度的这道对已排好序的数组A,一般来说可用二分查找可以很快找到。现有一特殊数组A[],它是循环递增的,如A[]={ 17 19 20 25 1 4 7 9}要求是复杂度线性,这个就是二分的变形,只要利用了循环递增就可利用二分#includeusing namespace std原创 2013-08-31 11:29:28 · 365 阅读 · 0 评论 -
堆排序
#includeusing namespace std;bool cmp(const void *p1,const void *p2){ return ((*(int *)p1-*(int *)p2)<0)?true:false;}bool cmp1(const void *p1,const void *p2){ return *(int *)p2-*(int *)p1<0原创 2013-09-25 13:04:35 · 434 阅读 · 0 评论 -
红黑树代码
#include#include#include#includeusing namespace std;//enum color_type{black,red};templateclass rb_tree{ enum color_type{black,red}; struct rbtree { rbtree(){p=left=right=NU原创 2013-10-14 20:31:41 · 527 阅读 · 0 评论 -
从一个题看python凶残
这几天看python感觉很不适应,刚好有人问一个算法题。我第一思路用c实现一遍,时间复杂度n空间复杂度大点,后想到用python发现python凶残的无语。编写一个函数,实现的功能是在A字符串中没有出现但是在B字符串中出现,把在B字符串中出现的字符保存到字符串U中,并输出字符串U;例如:A字符串“ADCEF",B字符串“gg”,则字符串U是“gg”c代码如下:#include原创 2014-03-07 13:14:53 · 671 阅读 · 2 评论