m*n
1 楼
昨天被问了一道老题. array={a1, a2, ..., an, b1, b2, ..., bn}变成 {a1,bn,a2,
bn-1,...,bn,a0},要求时间复杂度O(N),空间O(1).
当时根本不会,我所知道最快的算法是类似quick sort的方法,要O(NlogN), 这个O(N)怎
么做? 我记得以前有人贴过,找不到了.
还有不用random, time种子什么的, 怎么给shuffle任意一个数组,
大概就是
void shuffle(int A[]){
}
每次出来的 A 的结果不一样.
bn-1,...,bn,a0},要求时间复杂度O(N),空间O(1).
当时根本不会,我所知道最快的算法是类似quick sort的方法,要O(NlogN), 这个O(N)怎
么做? 我记得以前有人贴过,找不到了.
还有不用random, time种子什么的, 怎么给shuffle任意一个数组,
大概就是
void shuffle(int A[]){
}
每次出来的 A 的结果不一样.