21xrx.com
2024-12-28 14:22:50 Saturday
登录
文章检索 我的文章 写文章
C++语言实现冒泡排序
2023-06-24 00:10:46 深夜i     --     --
C++ 冒泡排序 实现

冒泡排序是一种基础的排序算法,其基本思想是比较相邻的元素,如果顺序错误就交换两个元素的位置,这样比较和交换一遍后,最大(小)的元素就会“冒泡”到序列的前面,然后对剩下的元素重复执行相同的操作。

在C++语言中,实现冒泡排序需要手动编写代码,以下是一个简单的实现过程。

首先,定义一个数组存储需要排序的数据,在本例中,我们定义了一个整型数组。

int arr[] = 3;

然后,定义一个循环,循环次数要比数组长度少1,因为每次循环都会比较相邻两个元素,不需要再比较最后一个元素和下一个元素,这样可以减少比较次数。

for (int i = 0; i < sizeof(arr) / sizeof(int) - 1; i++)

在循环内部,再定义一个循环,循环条件为数组长度减去已经排序的元素个数,因为每次内部循环会将最大(小)的元素“冒泡”到序列的最后面,所以下次循环就可以减少一个元素的比较。

for (int j = 0; j < sizeof(arr) / sizeof(int) - 1 - i; j++)

接着,在内部循环中,通过比较相邻两个元素的大小,来确定是否需要进行交换位置,这里以从小到大排序为例。

if (arr[j] > arr[j + 1])

{

  int temp = arr[j];

  arr[j] = arr[j + 1];

  arr[j + 1] = temp;

}

最后,输出排序后的结果。

for (int i = 0; i < sizeof(arr) / sizeof(int); i++)

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

完整的冒泡排序代码如下:

#include

using namespace std;

int main()

{

  int arr[] = 3;

  for (int i = 0; i < sizeof(arr) / sizeof(int) - 1; i++)

  {

    for (int j = 0; j < sizeof(arr) / sizeof(int) - 1 - i; j++)

    {

      if (arr[j] > arr[j + 1])

      {

        int temp = arr[j];

        arr[j] = arr[j + 1];

        arr[j + 1] = temp;

      }

    }

  }

  for (int i = 0; i < sizeof(arr) / sizeof(int); i++)

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

  return 0;

}

本篇文章介绍了C++语言实现冒泡排序的过程,读者可以根据自己的需要进行修改和扩展。同时也是一个比较经典的排序算法,可以作为学习排序算法的入门案例。

  
  

评论区

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