
我的代码
文章平均质量分 73
zhaohuiy
这个作者很懒,什么都没留下…
展开
-
排序算法集合(1)-Python实现的堆排序
最近自己动手实现了各种排序算法,有冒泡、插入、快速排序、二叉树排序等等,觉得快速排序的效率(对于一般的乱序而言)的确无可匹敌。当然,堆排序也很酷。不过前几个使用c#实现的,而堆排序是用python实现的,没办法做benchmark了。今后几天陆续贴出来,供大家参看。 堆排序的算法请参考:http://baike.baidu.com/view/157305.htm原创 2009-10-07 18:18:00 · 829 阅读 · 0 评论 -
排序算法集合(2)-C#实现的插入排序
插入排序算法请参考:http://baike.baidu.com/view/1193395.htm?func=retitle int[] insert_sort(int[] target) { //At least two numbers to comparing if (target.Length < 2)原创 2009-10-08 11:24:00 · 464 阅读 · 0 评论 -
『算法』求串s和串t的最大公约子串
~“持而盈之;揣而锐之” 题目: 试设计一个算法,求串S和串T的最大公约子串;要求: 1) 不使用高级函数 2) 可以求出首个最大公约串(最左) 3) 最好也可以求出所有最大公约串 贴上一个实现(返回最左公约串):string maxSub(char * s, char * t){ if(NULL==s原创 2009-10-11 20:50:00 · 1485 阅读 · 0 评论 -
每日一题系列 - 二叉树节点求共同祖先
每天,自我肯定?还是自我否定?” 『每日一题』 题目取自清华大学《数据结构》题集,严蔚敏,米宁, 吴伟民 已知在二叉链表中,root为根节点, p^和q^为二叉树中两个节点,试编写求距离他们最近的共同祖先的算法。 ============题解: 如果此题的树结构是双向的,即子节点保留父节点的指针,父节点有指向子节点, 那么可以很快求解。现在考虑单原创 2009-10-12 23:00:00 · 3874 阅读 · 5 评论 -
排序算法集合(3)- 快速排序原理及C#实现
快速排序的思想是:1)初始输入值是一串乱序的数字S={s1, s2...sn}2)选取某个逻辑位置的值为“中间值”(m),然后经过用S中的其他元素跟m比较:比m大的元素都调整到在“中间值”之前,其余的放置在“中间值”之后-->现在,序列成了“准排序”状态,S被调整为S,分为三个部分P={p1, p2 ....} ,M={m}, Q= {q1, q2...},而这三个部分有P>M>Q的原创 2009-10-22 22:09:00 · 1493 阅读 · 0 评论 -
每日一题系列 - Compacting Stickers (ACM竞赛题)
题目选自:http://acm.pku.edu.cn/JudgeOnline/problem?id=1653。Compacting StickersDescriptionThe text on a sticker consists of words formed from small and capital Latin letters. Words原创 2009-11-03 21:25:00 · 794 阅读 · 0 评论 -
排序算法集合(4)- Python实现的N路归并排序算法
闲来无事,写个N路归排序并算法吧。不过该算法“分”的时候的确是N路递归的,但是“并”的时候,其实是2路在并,可以说是个伪N路归并算法。好在可以用,自娱自乐而已。 ps, 该算法还内嵌了冒泡排序算法,作为递归末端组内排序的算法。比如n=9, 那么最后含9个元素的小组的排序使用冒泡完成的。 def N_merge_sort(li,n): if type(li)!=list o原创 2009-11-08 14:58:00 · 1353 阅读 · 0 评论 -
每日一题系列 - 荷兰国旗问题
『每日一题』题目取自清华大学《数据结构》题集,严蔚敏,米宁, 吴伟民 荷兰国旗问题:(难度5)设有一个仅由红白蓝三种颜色的条块组成的条块序列。求一种时间复杂度O(n)的算法,使得这些条块按红、白、蓝的顺序排好,即排成荷兰国旗的图案。 分析:大意是比如{红,蓝,白,白,蓝,红,白,蓝,白} -->{红,红,蓝,蓝,蓝,白,白,白,白}的调整不过该题目并未规定是否可以另辟存储空原创 2009-10-30 10:41:00 · 6085 阅读 · 1 评论