2015-11-03 89 views
0

所以我想寫一個冒泡排序代碼,按降序對隨機數進行排序。這是我寫的代碼:Bubble sort descending

void BubbleSort(int data[], int size) 
{ 
    for (int i = size - 1; i >= 0; i--) 
    { 
     for (int j = 0; j <=size-1; j++) 
     { 
      if (data[j] <data[j + 1]) 
      { 
       swap(data[j], data[j+1]); 
      } 
     } 
    } 

} 

在哪裏掉的是:

void Swap(int &x, int &y) 
{ 
    int temp = x; 
    x = y; 
    y = temp; 
} 

當我運行它不會排序任何代碼,它只是不斷的隨機數以相同的順序當他們生成了。我不確定我的代碼有什麼問題,我試圖在紙上找到它,並且它運行良好;它可以是具有排序功能的東西嗎?

編輯:我只是修復了外部和內部循環,但它仍然沒有排序。

謝謝!

+0

什麼語言是您使用? –

+0

你的外環是錯誤的。您需要使用帶有標誌的while循環,因爲冒泡排序需要繼續,直到沒有掉電爲止。 –

回答

2
for (int i = size - 1; i < 0; i--) 

我< 0,因爲你開始使用它我> 0

變化是不正確的:

for (int i = size - 1; i >= 0; i--)