21xrx.com
2025-03-28 06:36:12 Friday
文章检索 我的文章 写文章
C++ 冒泡排序:从小到大排列 n 个数
2023-07-12 04:30:03 深夜i     30     0
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++ 冒泡排序是一种基础算法,非常适用于在较小的数据集中进行排序。当只需要对少量的数进行排序时,它是一种高效可行的选择。希望本文能够帮助初学者更好地理解和掌握此算法。

  
  

评论区

请求出错了