21xrx.com
2024-05-20 13:37:54 Monday
登录
文章检索 我的文章 写文章
C++ 冒泡排序:从小到大排列 n 个数
2023-07-12 04:30:03 深夜i     --     --
C++ 冒泡排序 排序 小到大 n个数

C++ 冒泡排序是一种基础算法,可以对 n 个数进行排序,本篇文章将介绍如何使用此算法从小到大排列数据。

冒泡排序算法的基本思想是比较相邻两个数的大小,如果前一个数大于后一个数,则交换它们的位置。这样相同的操作一遍又一遍地进行,直到所有数据都排列好了。

下面是 C++ 冒泡排序的实现:


void bubbleSort(int arr[], int n) {

  for (int i = 0; i < n-1; i++) {

    for (int j = 0; j < n-i-1; j++) {

      if (arr[j] > arr[j+1]) {

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

      }

    }

  }

}

在上面的代码中,`bubbleSort` 函数接收一个整型数组 `arr` 和数组长度 `n` 作为参数。它使用了双重循环,第一次循环从第一个数到倒数第二个数,第二次循环从第一个数到当前未排序的数的前一个数。在每次循环的过程中,比较相邻两个数的大小,如果前一个数大于后一个数,则交换两个数的位置。这样,每次内部循环结束后,最大的数就被交换到了未排序的部分的最后一个位置。由于内部循环是执行 n-1 次,所以外部循环只需要执行 n-1 次,即可将整个数组排列好。

下面是一个完整的例子,我们使用冒泡排序对数组进行排序:


#include <iostream>

using namespace std;

void bubbleSort(int arr[], int n) {

  for (int i = 0; i < n-1; i++) {

    for (int j = 0; j < n-i-1; j++) {

      if (arr[j] > arr[j+1]) {

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

      }

    }

  }

}

int main() {

  int arr[] = 8;

  int n = sizeof(arr) / sizeof(int);

  cout << "Before sorting: ";

  for (int i = 0; i < n; i++) {

    cout << arr[i] << " ";

  }

  bubbleSort(arr, n);

  cout << "\nAfter sorting: ";

  for (int i = 0; i < n; i++) {

    cout << arr[i] << " ";

  }

  return 0;

}

输出:


Before sorting: 5 3 2 8 6 7 1 4

After sorting: 1 2 3 4 5 6 7 8

在本例中,我们使用了一个整数数组 `arr`,并使用冒泡排序将其排序。可以看到排序后,数组中的数按从小到大的顺序排列。

总之,C++ 冒泡排序是一种基础算法,非常适用于在较小的数据集中进行排序。当只需要对少量的数进行排序时,它是一种高效可行的选择。希望本文能够帮助初学者更好地理解和掌握此算法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复