【发布时间】:2014-02-24 23:00:28
【问题描述】:
我在 C++ 中遇到过许多不同的冒泡排序算法实现。我现在将列出一些(只是彼此不同的几行),以便有人可以告诉我其中的区别。我注意到有些人使用 while 循环,它有点不同,但遍历数组的行仍然相同。
这些代码示例是使用 for 循环遍历数组的示例。
示例 1:
for (int i=0; i<size-1); i++)
for (int j=i+1; j<size; j++)
//swap lines
示例 2:
for (int j=0; j<(size-1); j++)
//swap lines
那么有什么区别呢?第二个每次遍历整个数组,第一个每次都少1? 我知道算法通过数组,交换它,没有必要再次回到数组的第一个元素,所以我猜第一个更好。
另外,C++ 中冒泡排序的最佳实现是什么(如果可以,请包含代码)?
【问题讨论】:
-
(1) 您已经回答了自己的问题。 (2) 冒泡排序是一种标准算法,网络上有很多相关的资源。
标签: c++ bubble-sort