向程序添加排序算法(冒泡排序)

Adding a sorting algorithm (bubble sort) to a program

本文关键字:冒泡排序 算法 排序 程序 添加      更新时间:2023-10-16

这是我从我们大学过去的一篇论文中得到的一个问题:

  1. 用户可以输入数组大小
  2. 用户可以输入一些值到数组;(直到它适合用户给定的数组大小)
  3. 用户输入的数组应该使用冒泡排序算法进行排序

例如

  • 我输入尺寸为3
  • 我可以输入三个数字假设12, 2, 5

应该这样排序2.5.12

使用两个函数,一个输入函数和冒泡排序算法函数,我这样编写输入函数:

void input_score(int array[], int score)
{
    for(int i=0; i<score; i++)
    {
        cout<<"enter the machine valuesn";
        cin>>array[i];
    }
  for(int i=0; i<score; i++)
    {
        cout<<array[i];
    }
}

之后,我想调用冒泡排序算法函数对其进行排序并打印:

void sort_array(int array[],int score){
    int temp;
    for(int i=0;i<score;i++){
        for(int j=i+1;j<score;j++){
            if(array[i]>array[j]){
                temp=array[i];
                array[i]=array[j];
                array[j]=temp;
            }
        }
    }
    cout<<"Sorted elementsn";
    for(i=0;i<score;i++)
        cout<<array[i]<<"n;
}

所以我在输入函数中写了这样的语句

for(i=0;i<=size;i++){
   sort_array(array[i],size);
}

我说的对吗?这是我的main函数

int main()
{
    cout<<" enter number of machinesn";
    int a;
    cin>>a;
    int array[a];
    input_score(array,a);
}

不,你不应该调用

for(i=0;i<=size;i++){ sort_array(array[i],size) }

你应该调用

sort_array(array,a);

因为您的void sort_array(int array[],int score){将第一个参数作为数组而不是int..试试下面的主,它应该工作。

int main()
{
    cout<<" enter number of machinesn";
    int a;
    cin>>a;
    int array[1000];
    input_score(array,a);
    sort_array(array,a);
}

或者如果你想在输入中调用排序…

void input_score(int array[], int score)
{
    for(int i=0; i<score; i++)
    {
        cout<<"enter the machine valuesn";
        cin>>array[i];
    }
  for(int i=0; i<score; i++)
    {
        cout<<array[i];
    }
    sort_array(array,score);
}

我不能告诉你从哪里调用排序函数,但你应该从函数input_score调用它。而且使用for循环来调用排序函数也是不必要的。只需调用function一次,如:

sort_array(array, score);

没有for循环,因为sort_array函数中已经有for循环,一旦传递数组的基址,它将对整个数组进行排序。

并且,确保从input_score或main函数调用sort_array