在 C++ 中实现冒泡排序的 C++ 程序


2024 年 2 月 24 日, Learn eTutorial
1779

在这个 C++ 程序中,我们将学习冒泡排序算法,这是一种简单的排序算法。

C++ 中的冒泡排序是什么?

冒泡排序是最简单的排序算法之一,也被称为下沉排序算法。冒泡排序的工作原理是,在不同的趟次中重复比较并交换相邻元素,直到数组排序完成。使用冒泡排序,我们只能对少量数据元素进行排序。

冒泡排序如何工作?

考虑一个数组 arr[] = {5, 1, 4, 2, 8}
第一趟 

  • 冒泡排序从前两个数字开始,它检查并找出哪个是最大的。
  • ( 6 2 5 3 9 ) –> ( 2 6 5 3 9 ),这里,算法比较前两个元素并交换,因为 6 > 2。
  • ( 2 6 5 3 9 ) –> ( 2 5 6 3 9 ),交换,因为 6 > 5
  • ( 2 5 6 3 9 ) –> ( 2 5 3 6 9 ),交换,因为 6 > 3
  • ( 2 5 3 6 9 ) –> ( 2 5 3 6 9 ),现在,在最后一个例子中,顺序是正确的,算法不执行任何操作,因为 6 小于 9

第二趟:

  • 现在,在第二趟中,它应该看起来像这样
  • ( 2 5 3 6 9 ) –> ( 2 5 3 6 9 )
  • ( 2 5 3 6 9 ) –> ( 2 3 5 6 9 ),交换,因为 5 > 3
  • ( 2 3 5 6 9 ) –> ( 2 3 5 6 9 )
  • ( 2 3 5 6 9 ) –> (2 3 5 6 9 )

第三趟:

  • 在这一趟中,没有什么可做的,因为数组已经排序,但算法只有在这一趟之后才能理解。
  • 在这一趟中,算法不执行任何操作,只是遍历数组
  • ( 2 3 5 6 9 ) –> ( 2 3 5 6 9 )
  • ( 2 3 5 6 9 ) –> ( 2 3 5 6 9 )
  • ( 2 3 5 6 9 ) –> ( 2 3 5 6 9 )
  • ( 2 3 5 6 9 ) –> ( 2 3 5 6 9 )

实现冒泡排序的 C++ 程序

程序要求用户输入数组的大小及其元素。用户输入的大小被读入变量 n。要排序的元素存储在名为 arr[50] 的数组中。可以使用 for 循环 将元素获取到数组中。

最初,i 的值设置为 0 并检查条件 i。如果为 true,则将第一个元素获取到 arr[i] 中并递增 i 的值。
现在所有 n 个元素都存储在 arr[] 中。对于使用 for 循环 排序,

最初 i=0 并检查条件,它是否小于 n-1。如果条件评估为 true,程序流程进入循环。j=0 (最初) 并且条件 j<(n-i-1) 评估为 true,程序流程进入循环并检查 if 块的条件,即 arr[j]>arr[j+1] 评估为 true,程序流程进入 if 块。索引号 j 处的元素与索引号 j+1 处的元素交换。现在程序流程转到内部 for 循环 的更新部分并递增 j 的值。再次检查条件,即 j<(n-i-1) 评估为 true,因此程序流程再次进入循环并检查 if 块的条件。如果条件评估为 true,则处理三个语句,否则更新 j 的值,并检查条件。继续类似地使用更新的值进行处理,直到外部 for 循环 的条件评估为 false。如果外部 for 循环的条件评估为 false,则程序流程退出循环。现在数组 arr[] 已排序,只需将其打印出来。

算法

步骤 1: 调用头文件 iostream.

步骤 2: 使用 namespace std

步骤 3: 打开整数类型主函数;int main()。

步骤 4: 声明整数类型变量 n, i, j. arr[50], temp;

步骤 5: 要求用户输入数组的大小;

步骤 6: 将数字获取到变量 n 中;

步骤 7: 要求用户输入数字;

步骤 8: 将数字获取到数组 arr[50] 中;

步骤 9: 获取数组的前两个元素并检查条件 arr[0] > arr[1];

步骤 10: 交换元素。

步骤 11: 获取元素 arr[1] 和 arr[2];检查条件 arr[1]>arr[2];

步骤 12: 重复步骤 10;

步骤 13: 同样地获取每个元素并进行比较;

步骤 14: 打印已排序的数组;

步骤 15: 退出;

C++ 源代码

                                          #include<iostream>
using namespace std;
int main()
{
    int n, i, arr[50], j, temp;
    cout<<"Enter the Size (max. 50): ";
    cin>>n;
    cout<<"Enter "<<n<<" Numbers: ";
    for(i=0; i<n; i++)
        cin>>arr[i];
    cout<<"\nSorting the Array using Bubble Sort Technique..\n";
    for(i=0; i<(n-1); i++)
    {
        for(j=0; j<(n-i-1); j++)
        {
            if(arr[j]>arr[j+1])
            {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    cout<<"\nArray Sorted Successfully!\n";
    cout<<"\nThe New Array is: \n";
    for(i=0; i<n; i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    return 0;
}
                                      

输出

Enter the Size (max. 50): 6
Enter 6 Numbers: 6
2
8
3
9
1
Sorting the Array using Bubble Sort Technique..

Array Sorted Successfully!

The New Array is: 
1 2 3 6 8 9