algorithm - 快速排序二进制数组

标签 algorithm sorting quicksort

我想知道在最坏的情况下,快速排序需要多少次比较才能对大小为 n 的二进制数组进行排序。
我无法找出这个问题的最坏情况。 [0 1 0 1 0 1..] ?
干杯,
伊奥

最佳答案

不完全是快速排序,但如果你想对二进制数组进行排序,你可以在 O(n) 中完成。只需数一数您有多少个 1 和 0,然后按照您想要的顺序写入即可。

例如,对于下面的数组:

[0 1 0 1 0 1 1]

你可以算出,在 O(n) 中你有三个 0 和四个 1。然后你只需先用三个 0 再用四个 1 重写你的数组。

关于algorithm - 快速排序二进制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432817/

相关文章:

c++ - 快速排序 - Middle Pivot 实现奇怪的行为

algorithm - Prim 算法中陷入困境并耗尽节点?

r - 如何根据排列顺序识别时间序列的所有可能排列

java - java中如何使用Comparator对二维数组进行排序

java - 如何在 Java 或 Groovy 中对时间字符串列表进行排序

Python - 按 dict`as dict value 的值对字典列表进行排序

algorithm - 连通图是 Dijkstra 算法的要求吗?

algorithm - 给定一些整数范围,从每个范围中找到至少包含一个整数的最小集合

javascript - 将两个数组排序/相交为两个新数组。

C 这是什么排序算法?