c++ 气泡排序随机数

nnsrf1az  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(203)

我正在尝试使用冒泡排序来排序一组随机数。但是我的代码导致了一个混乱的顺序。例如,它的排序不是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;
}

谢谢

nhaq1z21

nhaq1z211#

排序代码正确。
唯一的问题是在填充数据的同一个循环中调用排序并输出数组。
您应该先填充所有数据,然后排序,最后显示排序结果。

相关问题