不改变正负数之间相对顺序重新排列数组(时间O(N),空间O(1))
原帖位置: http://blog.csdn.net/v_july_v/article/details/7329314
问题:请看原帖
原帖解决方法评论:
区间翻转的最优解决方法是采用二分法进行区间翻转,因此其最差时间复杂度为O(NlogN),认为该思路无法解决该问题。
例如:
(+-)(+-)(+-)(+-)(+-)(+-)(+-)(+-)
(+-)(+-)(+-)(+-)
(+-)(+-)
(+-)
(-+)
新的思路:
(1)桶排序能够在 时间O(N),空间O(1) 实现,那么能否利用桶排序解决该问题,即如何将该问题转换为桶排序问题
(2)通过可逆的修改元素使得数组满足桶排序要求
(3)利用桶排序实现
(4)恢复元素
假设原数组中的全体正数按顺序依次为:a[0],...a[n]
(
原帖位置: http://blog.csdn.net/v_july_v/article/details/7329314
问题:请看原帖
原帖解决方法评论:
区间翻转的最优解决方法是采用二分法进行区间翻转,因此其最差时间复杂度为O(NlogN),认为该思路无法解决该问题。
例如:
(+-)(+-)(+-)(+-)(+-)(+-)(+-)(+-)
(+-)(+-)(+-)(+-)
(+-)(+-)
(+-)
(-+)
新的思路:
(1)桶排序能够在 时间O(N),空间O(1) 实现,那么能否利用桶排序解决该问题,即如何将该问题转换为桶排序问题
(2)通过可逆的修改元素使得数组满足桶排序要求
(3)利用桶排序实现
(4)恢复元素
假设原数组中的全体正数按顺序依次为:a[0],...a[n]
(