21xrx.com
2025-04-21 17:10:03 Monday
文章检索 我的文章 写文章
C++冒泡排序代码实例
2023-06-22 11:57:17 深夜i     22     0
C++ 冒泡排序 代码实例 排序算法 数组排序

冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,每次比较相邻两个元素,如果顺序错误就交换它们的位置,直到没有任何一对需要交换位置的元素为止。冒泡排序的时间复杂度为O(n^2),因此对于大规模数据的排序效率比较低。但是,由于其算法简单易懂,是初学者入门的必备技能之一。

下面是一份C++实现的冒泡排序代码:

#include <iostream>
using namespace std;
//冒泡排序函数
void BubbleSort(int arr[], int length)
{
  for (int i = 0; i < length - 1; i++) //外层数组长度减1,因为最后一个元素已经是有序的了
  {
    for (int j = 0; j < length - i - 1; j++) //内层数组长度减1,因为外层每循环一次就会有一个已经排好序的元素在数组尾部
    {
      if (arr[j] > arr[j + 1]) //如果前面的数大于后面的数,交换它们的位置
      {
        int temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
}
int main()
{
  int arr[] = 8;
  int length = sizeof(arr) / sizeof(arr[0]);
  cout << "排序前的数组顺序为:";
  for (int i = 0; i < length; i++)
  {
    cout << arr[i] << " ";
  }
  cout << endl;
  BubbleSort(arr, length);
  cout << "排序后的数组顺序为:";
  for (int i = 0; i < length; i++)
  {
    cout << arr[i] << " ";
  }
  cout << endl;
  return 0;
}

上面的代码中,首先定义了一个`BubbleSort`函数来实现冒泡排序算法。在函数中,使用了两个for循环,外层循环控制需要比较的数组元素个数,内层循环控制每次比较的相邻两个元素。如果前面的数大于后面的数,则将它们的位置交换,这样就可以一步步将数组中的最大值移到最后。由于循环次数的减少,可以提高算法的效率。

在主函数中,声明了一个需要排序的数组,并调用了`BubbleSort`函数进行排序。为了验证程序的正确性,还输出了排序前后的数组顺序。

总之,冒泡排序虽然算法比较简单,但却有很重要的作用。在排序过程中,每个元素都会经过一遍比较,从而找到其正确的位置。如果你正在学习C++编程,建议好好掌握冒泡排序算法,这对你的编程水平提高会有很大的帮助。

  
  

评论区

请求出错了