21xrx.com
2025-03-18 18:11:10 Tuesday
文章检索 我的文章 写文章
C++ 实现冒泡排序
2023-07-13 16:42:31 深夜i     13     0
C++ 冒泡排序 实现

冒泡排序是一种简单而实用的排序算法,它通过比较相邻元素的大小然后交换它们的位置来达到排序的目的。在 C++ 中,实现冒泡排序并不难,下面我们将介绍一下具体实现。

首先,我们需要一个数组来存储待排序的元素。假设我们的数组名为 arr,那么我们可以用下面的代码来读入数组元素。

int n;
cin >> n; // 读入数组大小
int arr[n];
for (int i = 0; i < n; i++) {
  cin >> arr[i]; // 读入数组元素
}

接下来,我们可以用下面的代码来实现冒泡排序。

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]);
    }
  }
}

上面的代码中,我们使用了两层循环来遍历整个数组。在内层循环中,我们比较相邻元素的大小,如果前一个元素比后一个元素大,则将它们的位置交换。这样,不断地重复这个过程,直到数组被排好序为止。

最后,我们可以用下面的代码来输出排好序的数组元素。

for (int i = 0; i < n; i++) {
  cout << arr[i] << " ";
}

完整的代码如下。

#include <iostream>
using namespace std;
int main() {
  int n;
  cin >> n; // 读入数组大小
  int arr[n];
  for (int i = 0; i < n; i++) {
    cin >> arr[i]; // 读入数组元素
  }
  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]);
      }
    }
  }
  for (int i = 0; i < n; i++) {
    cout << arr[i] << " ";
  }
  return 0;
}

通过上面的代码,我们可以轻松地实现冒泡排序,并对任意大小的数组进行排序。虽然冒泡排序的时间复杂度较高,但由于其简单可靠的特点,它在实际中仍然被广泛使用。

  
  

评论区