21xrx.com
2024-12-22 18:41:23 Sunday
登录
文章检索 我的文章 写文章
C++冒泡排序代码实例
2023-06-22 11:57:17 深夜i     --     --
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++编程,建议好好掌握冒泡排序算法,这对你的编程水平提高会有很大的帮助。

  
  

评论区

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