2016-05-08 4 views
1

バブルソートを使用して乱数のセットをソートしようとしています。しかし、私のコードは混乱したオーダーになります。たとえば、9 12 15 100 150をソートする代わりに、12 15 100 9 150とソートされます。以下は私のコードです。バブルソート乱数

#include <iostream> 
#include <cstdlib> 
using namespace std; 
void sortArray(int[], int); 
void showArray(const int[], int); 

int main() 
{ 
const int MIN_VALUE = 1; 
const int MAX_VALUE = 200; 
int numbers[MAX_VALUE]; 

for (int count = 0; count < MAX_VALUE; count++) 
    { 
    numbers[count] = (rand() % (MAX_VALUE - MIN_VALUE + 1)) + MIN_VALUE; 
    cout << numbers[count]<< endl; 
    sortArray(numbers, count); 
    showArray(numbers, count); 
    } 

} 

void sortArray(int numbers[], int size) 
{ 
    bool swap; 
    int temp; 
do 
{ 
    swap = false; 
    for (int count = 0; count < (size -1); count++) 
    { 

     if (numbers[count] > numbers[count + 1]) 
     { 
      temp = numbers[count+1]; 
      numbers[count+1] = numbers[count]; 
      numbers[count] = temp; 
      swap = true; 
     } 
    } 
} while (swap); 

} 
void showArray(const int numbers[], int size) 
{ 
for (int count = 0; count < size; count++) 
    cout <<numbers[count] << endl; 
} 

おかげ

答えて

1

仕分けコードが正しいです。

唯一の問題は、並べ替えを呼び出して、データを満たす同じループ内の配列を出力することです。

まず、すべてのデータを入力してからソートし、並べ替えた結果を表示する必要があります。

+0

こんにちは申し訳ありませんが、私は初心者です。それで、あなたが言及した必要な変更をするのにはしばらく時間がかかりました。それは働いた。どうもありがとう。 – cmw