21xrx.com
2024-12-22 23:13:56 Sunday
登录
文章检索 我的文章 写文章
C++实现冒泡排序
2023-06-27 13:13:13 深夜i     --     --
C++ 冒泡排序 实现

冒泡排序是一种简单但经典的排序算法,它的思想是比较两个相邻的元素,如果它们的顺序不正确就交换它们,直到没有需要交换的元素为止。在这篇文章中,我们将使用C++语言来实现冒泡排序。

首先,我们需要一个数组来存储要排序的元素,这里我们定义一个整型数组。然后,我们使用for循环来遍历数组,对比相邻的元素并进行交换。具体地说,我们可以通过以下的代码实现:


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函数接受两个参数:要排序的数组和数组的长度。在函数内部,我们使用两个for循环来遍历数组。外层循环控制比较和交换的次数,因为每次循环都会确定一个最大值,所以我们只需要比较n-1次即可。内层循环用于比较相邻的元素,如果它们的顺序不正确就进行交换。

在比较和交换的过程中,我们需要使用一个swap函数来实现元素交换。swap函数的实现如下所示:


void swap(int& a, int& b)

  int temp = a;

  a = b;

  b = temp;

这个函数比较简单,只需要接受两个整型参数,然后用一个中间变量来保存其中一个数,然后进行交换即可。

最后,我们只需要在main函数中调用bubbleSort函数并输出排序后的数组即可。完整的代码如下所示:


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

      }

    }

  }

}

void swap(int& a, int& b)

  int temp = a;

  a = b;

  b = temp;

int main() {

  int arr[] = 5;

  int n = sizeof(arr)/sizeof(arr[0]);

  bubbleSort(arr, n);

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

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

  }

  cout << endl;

  return 0;

}

执行代码后输出的结果为:2 3 4 5 8。

在实现冒泡排序时,需要注意数组的长度不能超过C++数组的最大长度限制,这个限制取决于你的机器和操作系统。在实际情况中,我们可能会使用更加高效的排序算法,比如快速排序或归并排序,但冒泡排序的实现对于理解排序算法的基本原理是非常有帮助的。

  
  

评论区

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