【发布时间】:2011-10-08 03:16:21
【问题描述】:
我正在做一个小型项目 - 使用链表的学生数据库,这是我第一学期的一部分。规范是,用户应该能够使用名称首字母搜索记录,这是结构中的 char[4]。
现在有两种搜索首字母的方法,一种是通过线性搜索,这确实是低效的(我实际上并不关心,因为这不是某些公司的基本内容等)或通过二分搜索.
二进制搜索需要排序的数组,所以我在想如果使用字符串的 ASCII 和进行搜索是否有意义?
例如,记录 1 的初始值为“AB”,记录 2 的初始值为“CD”。两者的 ASCII 和为 65+66 = 131 & 67+68 = 135,列表使用首字母排序(使用 strcmp)。
所以当用户输入“AB”时,我将只查找数字 131,如果存在,则显示记录?
这可能是一个非常糟糕的主意,请不要对我发火并解释为什么这是一个坏主意。
【问题讨论】:
-
在 2011 年,您不应该假设用户名可以用 ASCII 表示。我们使用 unicode 已经很久了。
标签: c algorithm search linked-list ascii