求一种排序算法
假如
有ab abc tbd gbo gih obl qpn bcn bdm jmb 像这样很多的单词。
我现在用BM算法将包含b字母的单词全部选出来,然后排序后罗列出来,这个排序就是让以b开头的字母放在前面,而b在中间或者结尾的放在后面,怎么实现这个排序,效率比较高,有什么成熟的算法吗
(我其实是想做一个文本补全的功能,但是与百度 google的不一样,它们只是罗列出以输入词开头的词组,但是我要罗列出所有包含输入词的词组,所以要进行一个排序,让以输入词开头的词组放在前面,其他的放在后面)
[解决办法]
把每个字母转换成ASCII代码,
减去B的值后取绝对值,
再按这些值进行排序,
然后再转换回单词,
如果有些值的绝对值是相同的,就在这个区域再按字母重排一下
[解决办法]
直接字符串排序就可以了。比较的就是字符串的值
[解决办法]
关注一下,
[解决办法]
设二维字符数组,二次循环,再判断下,满足的就显示出来
[解决办法]
把word中b的位置(index)提取出来,order by index,word
[解决办法]
使用普通的字典序;
但要对每个单词赋值一个关键词:用b字母出现的位置定义;
然后使用任何排序均可。
[解决办法]
设个标志位白
[解决办法]
一个for循环就可以,先看看单词有没有b,有b且是头一个,就在列表头保存,有b但不是b打头,就在列表末尾加上,输出不就完事了吗!