【时间复杂度小的解法】数1-100中的奇数无序排列,缺一个数,怎么快速找出来?
问:c 里面的搜索算法有几种答:没听懂
问:有1-100的所有奇数,无序排列,怎么找出缺的那个
答:先把所有 1-100 的奇数加起来减去他的和
问:时间复杂度太大 有简单的吗?
这是计算机研究生复试时候的问题。
搜索算法,这个该怎么答?
我在想这个找出缺的数,方法有:①求和相减;②排序,判断;③比较,判断;④c语言的位运算中的异或运算(“半加运算”);⑤集合观点,补集全集。
关于④:把这些无序的数和1到100中的所有奇数作“半加运算”,然后就得到这个缺的数。这个只是用加法,没有进位,没有逻辑判断,算简单了吗?
关于⑤:从数学的角度来说,把1到100中的奇数设为全集,把这些无序的数设为其中的一个子集,它的补集就是所缺的数。想法是简单的,弱弱问下c语言中的函数库什么的,有提供集合表达方式的吗?其他编程语言呢?能满足老师的要求吗?
除了上面说的几个方法 ,还有方法吗?
[ 本帖最后由 超超超1 于 2013-8-15 16:11 编辑 ]