编程珠玑 第二章 习题6~9
2013-12-26 20:25
375 查看
习题6:定义一个多映射multimap数据结构:map<int, list<string> >。首先把名字的按键编码(int型)作为名字的标识,根据标识进行排序,当标识相同时,根据名字排序(字典排序);multimap结构中第一位存储名字标识,第二位存储名字,标识相同的名字构成链表,由于multimap本身的各个条目会自动排序,所以省略了标识间的排序;当以按键编码为参数进行查询时,选择二分搜索方法进行结果输出。
习题7:利用桶排序算法原理,因为数据在磁带中存储,所以只能顺序读取矩阵元素,构建和矩阵列数量相同的桶,桶内部选择链表结构,顺序存储。矩阵每行的每个元素放入不同的桶中,形成自然的顺序结构,当所有矩阵元素都存储到对应的桶中后,顺序读取每一个桶和每一个桶中的元素,最后的结果就是原来矩阵的转置。
习题8:先将给定的n元实数集合排序,可以选择快排方法,然后计算前k个实数的和,如果结果小于t,则存在题目要求的k元子集。
习题9:对于顺序搜索,搜索k次的时间复杂度为O(kn);若采用二分搜索则需要先排序,则二分搜索的时间复杂度为O(nlog10(n)+log2(n))。
习题7:利用桶排序算法原理,因为数据在磁带中存储,所以只能顺序读取矩阵元素,构建和矩阵列数量相同的桶,桶内部选择链表结构,顺序存储。矩阵每行的每个元素放入不同的桶中,形成自然的顺序结构,当所有矩阵元素都存储到对应的桶中后,顺序读取每一个桶和每一个桶中的元素,最后的结果就是原来矩阵的转置。
习题8:先将给定的n元实数集合排序,可以选择快排方法,然后计算前k个实数的和,如果结果小于t,则存在题目要求的k元子集。
习题9:对于顺序搜索,搜索k次的时间复杂度为O(kn);若采用二分搜索则需要先排序,则二分搜索的时间复杂度为O(nlog10(n)+log2(n))。
相关文章推荐
- 编程珠玑之第二章习题1
- 编程珠玑 第二章 习题5
- 编程珠玑之第二章习题8
- 编程珠玑之第二章习题9
- 编程珠玑之第二章习题2
- 编程珠玑之第二章习题10
- 编程珠玑之第二章习题6
- 编程珠玑之第二章习题7
- 编程珠玑之第二章习题4
- 编程珠玑 第二章 习题2
- Pytho 4000 n核心编程第二章课后习题
- 编程珠玑之第一章习题6给每个整数不超过10次的100w数据排序的测试用例
- 编程珠玑 第十三章 习题4 思考
- 编程珠玑 第一章习题解答
- 关于编程珠玑中习题2.3的一点思考
- 编程珠玑习题:多趟位图排序,数字不重复出现
- 编程珠玑代码调优习题12
- 编程珠玑之第三章习题4
- 【编程珠玑】第二章 二分查找的巧妙应用
- 编程珠玑第五章习题五——C++实现二分搜索时进行错误检测