标题: 求助:c语言编程题
性别:未知-离线 fantasydog
(codering)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 42708
注册 2005-7-9


发表于 2007-1-22 19:19 资料 短消息 看全部作者
1. 效率的话,移位吧。
先定个正负,然后开始往右移,移到0为止。
2的n次方是多少位,预先可以算出来的,这样移个n次就能算出来啦~
快吧~
(小数取整)
2. 堆排序
3. 这个…………没啥好算法。

ps:eclipse不错阿~


顶部
性别:未知-离线 fantasydog
(codering)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 42708
注册 2005-7-9


发表于 2007-1-22 19:24 资料 短消息 看全部作者
错了,不是堆排序,而是用堆找大小。
(n/2)*(n/2-1)就搞定了大和小,当然第一次的结果可以复用,就又少了n/2次。


顶部
性别:未知-离线 fantasydog
(codering)

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 567
编号 42708
注册 2005-7-9


发表于 2007-1-28 03:35 资料 短消息 看全部作者


QUOTE:
原帖由 鹤舞 于 2007-1-25 15:08 发表
用log求位数似乎不大合适,也许那是个成百上千位的大数呢。如果实际不超过long的数取log的效率可能还不如走一遍字符串。

只找最大最小,用堆排序前面建个堆,而且实际上建堆的时候还要赋值操作,这个代价可能 ...

帅哥,一维数组就可以表示堆了啊~~

另外求位数用log明显是不合适的,效率低下……
一个循环做大小比较,也不过n的复杂度……
顶部

正在浏览此帖的会员 - 共 2 人在线




当前时区 GMT+8, 现在时间是 2024-12-5 02:56
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009873 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP