LOADING

加载过慢请开启缓存 浏览器默认开启

C++经典例题-冒泡排序

2024/10/27 教程 C++

冒泡排序

冒泡排序,就是让数字像水里的泡泡一样,由大到小排序
那么在程序中我们要怎么实现呢?

解题思路

maopaopaixu

既然要从大到小排序,当然需要使用 for 循环来实现对一个整型数组每一位进行读取和判断并重新排序了
那么这是一个数组

int arr[10] = { 4,2,8,7,6,3,1,9,5,0 };

接下来我们要获取这个数组的长度

int arrlong = sizeof(arr) / sizeof(*arr);

通过使用 sizeof() 关键字进行获取数组 arr 占用的内存,并获取 *arrarr[0] 的长度,让两个数相除得到数组长度

利用 for 循环表达数组的全部数:

for (int i = 0; i <= arrlong; i++)
{
}

然后在 for 循环内加入转换的实现代码

int stream = 0;
stream = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = stream;

或者使用C++关键字 swap() 进行交换

swap(arr[j], arr[j + 1]);

然后,将转换代码封装到函数 sorting()

void sorting(int array[],int arraylong)
{
    for (int i = 0; i <= arraylong - 1; i++)
    {
        for (int j = 0; j <= arraylong - 1 - i; j++)
        {
            if (array[j] > array[j + 1])
            {
                /*int stream = 0;
                stream = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = stream;*/
                swap(array[j], array[j + 1]);
            }
        }
    }
}

main() 函数中调用 sorting() 函数

sorting(arr, arrlong);

最后,输出结果

for (int k = 0; k <= arrlong-1; k++)
{
    cout << arr[k] << endl;
}

maopaopaixujieguo

至此,程序结束

完整代码:

#include <iostream>
using namespace std;

void sorting(int array[],int arraylong)
{
    for (int i = 0; i <= arraylong - 1; i++)
    {
        for (int j = 0; j <= arraylong - 1 - i; j++)
        {
            if (array[j] > array[j + 1])
            {
                /*int stream = 0;
                stream = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = stream;*/
                swap(array[j], array[j + 1]);
            }
        }
    }
}

int main()
{
    int arr[] = { 4,2,8,7,6,3,1,9,5,0 };

    int arrlong = sizeof(arr) / sizeof(*arr);

    sorting(arr, arrlong);

    for (int k = 0; k <= arrlong-1; k++)
    {
        cout << arr[k] << endl;
    }

    system("pause");
    return 0;
}