摘要:不知道原来的问题是怎么样子,修改后大概题意就是说有一个由0和1组成的数据要做到先在奇数位放置0,偶数位放置1,多出来的部分再放到最后边。有一个限制条件是原地地交换,也就是原则上不能使用额外空间(当然O(1)的变量还是可以用的)。比如说输入{0,1,1,0,1,1,0}就变换成{0,1,0,1,0,1,1}好的,没有现成算法,这种问题我喜欢。其实还是可以从其他算法中借鉴一些思想,还记得Knuth给的一个快排吗?eidx = 0; // even indexoidx = 1; // odd indexwhile (eidx len && oidx len){ while (eidx l
阅读全文