对只含1、2、3的数组排序

来源:互联网 发布:脉脉软件安全吗 编辑:程序博客网 时间:2024/05/01 13:38
提供一种比较巧妙的思路:

我们将1,2,3,替换为互质的2,3,5,得到如下:

211332322553

之后,乘起来得到的900.这900里,除以2,有多少个2,就有多少个1;然后除以3,有多少个3,就有多少个3对应的2;然后除以5,有多少个5,就有多少个5对应的3。这是如何保证的呢?因为2,3,5是互质的。

如下:

被除数除数余数排序结果900245001450222501225211212尝试结束,尝试3225375027532502253813尝试结束,尝试5255503551031511全部结束

最终结果为112233.上面的这种思路,实际上是计数的一种变种。没有直接的技术,那自然就是可以的。

0 0