字符串排序算法

Kanson 2014-06-09 10:00:25
我想实现这样的排序功能:

A
a
B
b
.......
1
2
3
.....
每个字符串长度是16 ;

例如: "Ad" ,"aa","AA","BB","b","A2"...
排序完是这样的 "AA" ,"Ad","A2","aa","BB","b"... 求思路
...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kanson 2014-06-09
  • 打赏
  • 举报
回复
引用 3 楼 dataxdata 的回复:
其实关键就是单字符之间的大小比较,如果不想写一堆if...else语句的话,这种情况有一个很简单的办法,就是建立一个索引数组, 下标就是ASCII字符,值就是各个字符所对应的大小次序,利用这个数组,任何大小顺序都是实现,比如,对于你说的这种情况, 可以写成: comp_id['A'] = 0; comp_id['a'] = 1; comp_id['B'] = 2; comp_id['b'] = 3; ...... comp_id['0'] = 53; ...... 排序算法中的大小比较就可以写成这样的形式: if ( comp_id(ch1) < comp_id(ch2) ) { ..... }
ok 谢谢
dataxdata 2014-06-09
  • 打赏
  • 举报
回复
其实关键就是单字符之间的大小比较,如果不想写一堆if...else语句的话,这种情况有一个很简单的办法,就是建立一个索引数组, 下标就是ASCII字符,值就是各个字符所对应的大小次序,利用这个数组,任何大小顺序都是实现,比如,对于你说的这种情况, 可以写成: comp_id['A'] = 0; comp_id['a'] = 1; comp_id['B'] = 2; comp_id['b'] = 3; ...... comp_id['0'] = 53; ...... 排序算法中的大小比较就可以写成这样的形式: if ( comp_id(ch1) < comp_id(ch2) ) { ..... }
Kanson 2014-06-09
  • 打赏
  • 举报
回复
引用 1 楼 dataxdata 的回复:
排序算法都是通用的,如插入、选择、快排、shell等,对于不同的数据类型,差别只是在比较大小的算法 你只要按照你的要求写好字符串比较大小的函数,然后套用一个现成的排序算法就行了
其他的好办 就是数字不好弄,还望指点下
dataxdata 2014-06-09
  • 打赏
  • 举报
回复
排序算法都是通用的,如插入、选择、快排、shell等,对于不同的数据类型,差别只是在比较大小的算法 你只要按照你的要求写好字符串比较大小的函数,然后套用一个现成的排序算法就行了

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧