您的位置:首页 > 编程语言

编程珠玑 第二章 习题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))。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息