什么是泡泡擅长什么?

时间:2010-07-18 00:21:48

标签: c++ performance algorithm sorting bubble-sort

  

可能重复:
  What is a bubble sort good for?

我确信每种算法都有其优点和缺点,那么与其他排序算法相比,buble sort怎么样呢? (当然我希望答案不是“易于学习”)

7 个答案:

答案 0 :(得分:12)

  1. 链接列表很容易实现,因为您在重复从左到右遍历时始终交换相邻节点。
  2. 冒泡排序是一种稳定的排序。

答案 1 :(得分:10)

性能方面,冒泡排序不是很好(O(n ^ 2))。以下是它的一些优点:

  • 冒泡排序非常容易正确编写(如果你正在做一些快速而又脏的事情,那么使用冒泡排序可能会更容易)。

  • 内存消耗非常低(因为它是就地排序,与数组的合并排序不同)

答案 2 :(得分:9)

这很简单,可以在学校里播放,而不会在整个混乱中结束: “如果你的左邻居比你高,请换位。”

答案 3 :(得分:9)

答案 4 :(得分:7)

冒泡排序是对三个项目列表进行排序的最快方法。除了极少数例外,所有排序都会退化为三种列表的冒泡排序形式。

答案 5 :(得分:7)

BubbleSort在已经排序的列表上更快比QuickSort(以及几乎所有其他类型); - )

QuickSort最佳案例表现为O(N log N),BubbleSort为O(N)!

除了这种异国情调外,我不得不同意Donald Knuth, The Computer of Computer Programming,Vol。 3:排序和搜索

  

简而言之,泡泡排序似乎没有什么值得推荐的,除了一个吸引人的名字以及它会导致一些有趣的理论问题

答案 6 :(得分:3)

实际上你永远不会将它用于非常小的列表。对于足够小的列表,低开销可以使其优于发烧友。我永远不会把它用于十几件物品。