算法
文章平均质量分 53
fighter_lp
这个作者很懒,什么都没留下…
展开
-
求数组的最大值和最小值
方法一: 分别遍历数组两次,求出最大值和最小值,这样比较次数为2n 方法二: 定义一个结构类型,用来存储最大值和最小值 将数组中的元素两两配对,对每对数据进行比较,并将较大值与结构体中的最大值比较,将较小值和结构体中的最小值比较 算法的比较次数为1.5n 方法二的具体实现代码: //递归实现 struct Res{ int max ; in原创 2013-04-10 21:26:08 · 990 阅读 · 0 评论 -
求无序数组第K大的数
给出一个数组,要求查找出这个数组中按顺序排第K大的数字 思路一: 利用快排算法先将数组排序,然后在定位到第K个元素即可,算法复杂度为O(nlogn) 思路二: 利用快排和二分查找,先把数组分成两个部分,左边的比数轴pivot小,右边的比数轴pivot大。然后再比较pivot的位置和K的关系,如果比K大,那么第K个值就在pivot的左边,反之若比K小,则第K个值就在pivot的右边,若相原创 2013-04-10 22:28:30 · 981 阅读 · 0 评论 -
数组循环移位
编程之美中的题目: 设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。 程序思路: 假设原始数组序列为abcd1234,循环右移4位。变换过程如下: 1. 逆序排列abcd: abcd1234 -> dcba1234 2. 逆序排列1234:dcba1234 -> dcba4321 3. 全部逆序:原创 2013-04-22 15:33:23 · 527 阅读 · 0 评论 -
寻找发帖水王
题目:Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? –《编程之美》 扩展:随着Tango的发展转载 2013-04-14 11:38:36 · 578 阅读 · 0 评论 -
生成随机数问题
题目:给一个函数rand5(),它可以产生0到4之间的随机数(整数),要求写出函数rand8(),可以产生0到7之间的随机数(整数) 解决方法: function rand8() { while (true) { $i = 5 * rand5() + rand5(); if( $i 24 ) {转载 2013-05-12 23:21:12 · 568 阅读 · 0 评论