【发布时间】:2011-05-19 21:00:15
【问题描述】:
我和朋友就以下两种算法的真正冒泡排序发生了争执,关于哪一种更好,不说哪一种是我的,我只是想听听你对这两个算法的回答(用 C++ 编写)
1-哪一种才是真正的冒泡排序?
2-哪个更好?
这里有两种算法:
// Number one :
void BubbleSort(int Arr[], int size)
{ for (int i=0;i<size-1;i++)
for (int j=i+1;j<size;j++)
if (Arr[i]>Arr[j])
{ int temp = Arr[i];
Arr[i] = Arr[j];
Arr[j] = temp;
} }
// Number two :
void BubbleSort(int Arr[], int size)
{ for (int i=0;i<size-1;i++)
for (int j=0;j<size-1;j++)
if (Arr[j]>Arr[j+1])
{ int temp = Arr[j];
Arr[j] = Arr[j+1];
Arr[j+1] = temp;
} }
【问题讨论】:
-
应该注意的是,冒泡排序绝不应该在任何类型的生产代码中使用,因为与其他基于比较的排序(例如插入排序)相比,它显然很糟糕,例如,它很容易实现但优于冒泡排序在几乎(如果不是全部)情况下进行排序。我什至说冒泡排序不应该再教了。
-
Python 在大厅的下方,右侧第二个门。认真:使用C缩进;不要伪装。
标签: c++ algorithm bubble-sort