算法
无相禅
这个作者很懒,什么都没留下…
展开
-
排序算法笔记
注:部分代码来自网上冒泡排序:相临数据不停交换,这样每一趟后,后面一个数据就是最大或者最小的了。可以采取保存最后一次交换的位置来减少交换次数,因为这代表此位置后面数据没有发生交换,已经有序列了。此算法缺点是交换的次数过多//冒泡排序3void BubbleSort3(int a[], int n){ int j, k; int flag;原创 2016-06-19 13:14:32 · 165 阅读 · 0 评论 -
关于二叉树本质的回答
转自知乎里面一个人的回答:作者:匿名用户链接:http://www.zhihu.com/question/37381035/answer/84584381来源:知乎著作权归作者所有,转载请联系作者获得授权。很明显,题主没有学的比较好。或者没参加过acm的相关训练。只是一个平时跟着学做些课后题然后混毕业的。二叉树,本质上,是对链表和数组的一个折中。。转载 2016-07-31 18:37:26 · 785 阅读 · 0 评论 -
为什么是红黑树
红黑树设计的背景和灵感是什么?搜索了半天没有找到答案,但找到一些策略性的思考。AVL,平衡二叉树,是需要完全平衡的,对于查找操作来说每一步查找都是左右两边平衡的二分了,最坏的情况,lgN次比较,效率最高,但如果是插入或者删除当中一个元素,平衡打破后,需要采取所谓的“旋转”局部操作,进行再平衡,但要再建立完全的平衡,需要“旋转”的次数可能会较多,效率差。基于上面AVL的考虑,原创 2016-07-31 23:31:15 · 155 阅读 · 0 评论 -
随机产生N个不重复数
一、完美想法b = f(a);a是线性的,而b是唯一,而且看起来是伪随机的。其中函数f,有个是RSA算法的函数。二、排除重复 先生成随机数,并用个数组等进行置位或者用HashSet判断为重复与非重复。 if(Arr[rand] == 1) 说明已经生产了这个数,然后继续生产下个随机数。用部分空间保存之前状态,判断次数减少为一次。 但这个...原创 2018-11-28 16:03:04 · 1144 阅读 · 0 评论