![]() | 1 jy02201949 2017-05-10 11:52:08 +08:00 ![]() |
![]() | 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 |