链表

来源:互联网 发布:安讯士网络摄像机 编辑:程序博客网 时间:2024/06/05 16:35
    面试题有很多,我不可能把所有的题的解决答案张贴出来,我只说一下我的思路,当然,很多解决方法是参考与书籍和网络,看书还是很有用的,这里的题一般是通过链表来实现。
    1.从1----1百万个数字里面随机抽取五十万个不同的数字.
      用链表保存这100万个数,从小到大。每随机一次就删除一个数,问题是怎么样从链表中高效的查找那个数。搜索方式,二分查找。但是这样并不是最优方案因为你还是需要进行查找,这个问题是个完全随机的问题,就像当于高中所学的的抽签的问题,抽签的顺序并不影响其随机性。如果随机性要求不高可以用洗牌算法。
      仔细想了想,用链表是无法做到高效的,最好的解决方案还是用连续存储的方式,如数组,我们可以把随机到的数据依次交换到数据的后面,然后减小随机的范围。这是我能想到的最好的解决方案,即保证了随机性,也保证了速度,但是有一点需要注意,栈的大小是很小的,windows下栈的大小为1M,linux下栈的大小好像是8M,暂时还没有研究到,所以这些数字的存储最好不要放到栈上,可选方案是放到全局变量区,或者是动态分配内存,要不很容易就能导致栈的下溢出。
    2.非常长的数字: 32478914098230948234 +101 是怎么写这加法涵数
                            32478914098230948234 *101呢?
      拆分数字并用链表来保存,然后进行计算。
阅读(522) | 评论(1) | 转发(0) |
0

上一篇:ubuntu 标准c语言环境的搭建

下一篇:libipq动态防火墙的入门实验

相关热门文章
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • 什么是shell
  • linux socket的bug??
  • linux的线程是否受到了保护?...
  • ChinaUnix & ITPUB社区12周年...
  • ssh连接出现以下提示,求解...
  • 如何扩展MYSQL
  • 准备做一个大型门户,用户什么...
  • gbk or utf8
给主人留下些什么吧!~~

chinaunix网友2008-08-05 13:01:03

SAP99,支持下,也欢迎访问我的博客,SAP资料多多http://sap99.cublog.cn http://www.sap99.comSAP实施顾问宝典 :http://www.sap99.com/Soft/VIP/200803/182.html

回复 | 举报