
数据结构与算法类
shineHoo
这个作者很懒,什么都没留下…
展开
-
数据结构与算法——常见排序算法的稳定性分析和结论
<br /><br /> 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。<br /> 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单转载 2010-09-02 14:47:00 · 1262 阅读 · 0 评论 -
随机洗牌算法
<br /><br />1. for i:=1 to n do swap(a[i], a[random(1,n)]); // 凑合,但不是真正随机<br />2. for i:=1 to n do swap(a[i], a[random(i,n)]); // 真正的随机算法<br />其中,random(a,b)函数用于返回一个从a到b(包括a和b)的随机整数。<br /><br />2)的时间复杂度O(n), 空间复杂度O(1);<br /><br />参见:<br />http://hi.baid转载 2010-09-02 21:05:00 · 1134 阅读 · 0 评论 -
三个数比较大小
<br /><br />网上找的,挺有意思,以前面试听说过<br /> <br />int a,b,c,t;<br />if(a<b)<br />{t=a;a=b;b=t;} //交换<br />if(a<c)<br />{t=a;a=c;c=t;} //交换<br />if(b<c)<br />{t=b;b=c;c=t;} //交换<br />这样就从大到 小<br />就是a,b,c转载 2010-12-09 14:01:00 · 1656 阅读 · 0 评论