我正在做一个迷你项目 - 使用链表的学生数据库,这是我第一学期的一部分。规范是,用户应该能够使用名称首字母搜索记录,这是结构中的char [4]。使用ASCII字符和进行二进制搜索字符串?
现在有两种方法来搜索首字母缩写,一种是线性搜索,其效率确实很低(我不关心这一点,因为这不会成为某些公司的基本内容等等),或者通过二进制搜索。
二进制搜索需要排序的数组,所以我想如果使用字符串的ASCII总和搜索会有什么意义?
例如,记录1有initial =“AB”,记录2有“CD”。两者的ASCII码总和为65 + 66 = 131 & 67 + 68 = 135,并且使用首字母(使用strcmp)对列表进行排序。
所以当用户输入“AB”时,我只需要查找数字131,如果存在,显示记录?
这可能是一个非常糟糕的主意,请不要激怒我,并解释为什么它是一个坏主意。
2011年,您不应该假定用户的名字可以用ASCII表示。我们有很长很长的unicode。 –