算法
fighting_alva
这个作者很懒,什么都没留下…
展开
-
数组变换
#面试题#有原数组S和目标数组T两个数组,它们分别是0-n-1的n个数字的某一种排列的结果。请给出算法,完成从S到T的变换,只允许使用一种操作:数组中的其他元素可以0交换。例如:S={0,1,2},T={0,2,1}。变换过程中,只允许1和2于0进行交换。下面是一种可行方法:{0,1,2}=>{2,1,0}=>{2,0,1}=>{0,2,1}。 思路: 关键在于非零数字的移动,非零数字原创 2013-08-23 14:48:52 · 922 阅读 · 2 评论 -
消失的数字分析
原题 从1到n,n个数字,每个数字只出现一次。现在,随机拿走一个数字,请给出方法,找到这个数字。 如果随机拿走两个数字呢? 如果随机拿走k个数字呢? 分析 看微博上,有的同学说,题目描述不清楚,最好有一个例子说明。确实应当如此。争取以后多用例子进一步说明题意。 这个题目的含义是:n-1互不相同的整数,取值范围是[1,n],请找到1-n中,没有出现的整数(好像更难理解转载 2013-08-23 14:54:25 · 820 阅读 · 0 评论 -
10大基础实用算法及其讲解
原文出处: cricode 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治转载 2014-06-26 13:59:42 · 559 阅读 · 0 评论