zoukankan      html  css  js  c++  java
  • 编程珠玑第一章、第二章

    利用位图排序

    问题:一个最多包含n个正整数的文件,每个数都小于n,n = 1000 0000。文件中的正整数没有重复的,请按升序排列这些整数。可用内存空间只有1MB左右,运行时间在10秒左右。

          解决方法:使用一个具有1000万个位的为序列表示这个文件中的所有整数。当且仅当整数 i 在文件中时,第 i 位为1。用C++具体实现的话,可用使用位域bitset来实现。bitset<10000000> my_bitset;

    找出一个不在文件中的数

    问题:给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32bit表示的整数。

        解决方法:因为32bit可用表示的最大无符号整数为小43亿,所以一定存在至少一个这样的整数。具体解决方法为,利用二分查找的思想,通过统计中间点之上和之下的元素个数来探测范围:或者上面或者下面的范围具有至多全部范围的一半元素。

    向量abcdefgh向左旋转3个位置

    问题:将向量abcdefgh向左旋转 i=3 个位置。

          解决方法:翻转算法。

       1: reverse(0, i-1);    /* cbadefgh */
       2: reverse(i, n-1);    /* cbahgfed */
       3: reverse(0, n-1);    /* defghabc */

          此方法可用通过翻转左右手来进行演示和理解,十个手指分别代表十个数1~10。

    找出变位词

    问题:找出字典中的变位词,如stop和tops。

          解决办法: 分为3步。第一步,给每个单词增加一个标识,标识由该单词的字母排序后组成,这样,变位词就具有了相同的标识符。第二步,按照标识符对单词进行排序。第三步,输出。如果用C语言实现的话,需要用到一个qsort 函数,类似于C++ STL中的排序算法。

  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/younes/p/1728221.html
Copyright © 2011-2022 走看看