我和一位朋友討論了以下兩種算法的實際泡沫排序,以及哪一個更好,沒有提及哪一個是我的,我只是想聽到關於這兩個算法的這兩個問題的答案(用C++編寫)哪一個是真正的Bubble Sort,哪個更好?
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;
} }
應該注意的是,冒泡排序決不應該用在任何類型的生產代碼中,因爲它與其他基於比較的排序(比如插入排序)相比顯然很糟糕,例如,它很容易實現,但幾乎勝過冒泡排序(if並非全部)情況。我甚至走得很遠,並且說不應該再教導泡沫排序。 – helpermethod 2010-12-03 17:21:17
Python在大廳裏,第二扇門在右邊。認真:使用C縮進;不要掩飾它。 – pmg 2010-12-03 18:16:14