冒泡排序

排序,是把一个无序序列调整为升序或降序序列。到目前为止,人们已经设计出很多种排序算法。

冒泡排序(Bubble Sort)是一种简单的排序算法。它对给定序列从头至尾,依次对序列中相邻的元素进行两两比较,每次比较后,把不符合预期顺序的元素进行位置交换。

我们将冒泡排序的过程梳理如下:

较相邻元素:从序列的第一个元素开始,比较相邻的两个元素。
交换位置:如果前一个元素比后一个元素大,则交换它们的位置。
重复遍历:对序列中的每一对相邻元素重复上述步骤,直到序列的末尾。这样,最大的元素会被"冒泡"到序列的最后。
缩小范围:忽略已经排序好的最后一个元素,重复上述步骤,直到整个序列排序完成。
理解冒泡排序的要点:每一轮完成一个元素的排序(将剩余序列中的最大元素移到剩余序列的末尾),进行 n - 1 轮(假设序列长度为 n)后,完成排序。

#include
using namespace std;

int main() {
    int n;
    cin >> n;
    int arr[100];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }

    // 冒泡排序核心逻辑
    for (int i = 0; i < n - 1; i++) {  // 外层循环控制轮数,共n-1轮
        for (int j = 0; j < n - 1 - i; j++) {  // 内层循环比较相邻元素
            if (arr[j] > arr[j + 1]) {  // 前一个元素大于后一个,交换
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // 输出排序后的序列
    for (int i = 0; i < n; i++) {
        if (i > 0) cout << " ";
        cout << arr[i];
    }
    cout << endl;

    return 0;
}
全部评论

相关推荐

迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务