1
jy02201949 2017-05-10 11:52:08 +08:00
待会又有人来帖教你如何 google 的网址了,话说字符排序是什么情况,字符串么?
|
2
geelaw 2017-05-10 11:53:38 +08:00
我一般用电脑排,用手排序的时候一半用归并。
|
3
lany 2017-05-10 11:56:06 +08:00 via Android
我一般用 Excel 点一下升序就好了
|
4
xj998 2017-05-10 11:59:40 +08:00 via Android
用 Linux 命令就行了。
|
5
as463419014 2017-05-10 12:00:55 +08:00
放到数据库里,order by,[手动滑稽]
|
6
coderluan 2017-05-10 12:01:52 +08:00
单纯研究算法效率就看复杂度呗,工作中遇到肯定是拿来主义,如果真遇到大量数据需要排序,一般都是优先考虑能分解和并行的算法的。
|
7
sdenvi OP @coderluan 今天去面试,面试官问到一个问题,就是给个乱序的字符串,里面可能包含相同的字符,对其进行正序或者倒序排列,是不是应该把字符串中相同的字符先放到一起再去考虑排序的问题?
|
8
coderluan 2017-05-10 13:46:35 +08:00
这个啊,不是那个 acm 水题吗,只不过把整数换成了字符,这题根本是排序,而是结构转换。
简单来说,就是你弄个 bool 的字母表,先全设置成 0,然后读输入字符串,碰见个字符,就把字母表相应位置,设成 1,重复不重复的无所谓,最后把字母表中为 1 的字符全输出就是结果了,因为字母表本身都是按顺序来的。 |
10
coderluan 2017-05-10 13:53:49 +08:00
上面说的可能比较混乱,假设字母就有 a,b,c,d,e 五个,那样你开始申请个 A[0] = {0,0,0,0,0}。
碰见了输入 cdbd,那样数组的变化就是 {0,0,1,0,0}, {0,0,1,1,0}, {0,1,1,1,0}, {0,1,1,1,0}最后把 1 的位输出,就是 bcd 了。 |
11
thundernet8 2017-05-10 14:12:03 +08:00 via iPhone
以数组排序为例,不考虑数值特殊性,用归并排序的迭代方式比较好,时间和空间都控制的不错,在几个常见排序算法里面,接近快排的时间消耗
|
12
starqoq 2017-05-10 16:00:59 +08:00 via Android
|