C++冒泡排序算法实例

 更新时间:2014年10月09日 08:54:07   作者:果冻想  
这篇文章主要介绍了C++冒泡排序算法实例,本文先是介绍了什么是冒泡排序,然后给出了实现代码,需要的朋友可以参考下

冒泡排序

大学学习数据结构与算法最开始的时候,就讲了冒泡排序;可见这个排序算法是多么的经典。冒泡排序是一种非常简单的排序算法,它重复地走访过要排序的数列,每一次比较两个数,按照升序或降序的规则,对比较的两个数进行交换。比如现在我要对以下数据进行排序:

10 3 8 0 6 9 2

当使用冒泡排序进行升序排序时,排序的步骤是这样的:

3 10 8 0 6 9 2  // 10和3进行对比,10>3,交换位置

3 8 10 0 6 9 2  // 10再和8进行对比,10>8,交换位置

3 8 0 10 6 9 2  // 10再和0进行对比,10>0,交换位置

……

3 8 0 6 9 2 10  // 这个时候,10到达了最右边,是最大的数字,此时,我们在从头开始进行对比

3 8 0 6 9 2 10  // 3小于8,所以不用交换位置

3 0 8 6 9 2 10  // 8大于0,所以交换位置

……

0 2 3 6 8 9 10

很简单,就是让大数沉入下面,小数慢慢上浮起来。冒泡排序的时间复杂度也为O(n^2)。

代码实现

复制代码 代码如下:

#include <iostream>
using namespace std;
 
void BubbleSort(int arr[], int length)
{
     int temp;
     for (int i = 0; i < length; ++i)
     {
          for (int j = 0; j < length - i - 1; ++j)
          {
               if (arr[j] > arr[j + 1])
               {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
               }
          }
     }
}
 
int main()
{
     int arr[10] = {2, 4, 1, 0, 8, 4, 8, 9, 20, 7};
 
     BubbleSort(arr, sizeof(arr) / sizeof(arr[0]));
 
     for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); ++i)
     {
          cout<<arr[i]<<" ";
     }
     cout<<endl;
 
     return 0;
}

相关文章

  • C++运算符重载与多继承及二义性详解

    C++运算符重载与多继承及二义性详解

    继友元知识过后,就到了今天的C++运算符重载的内容了,运算符重载是C++里比较重要的内容。这篇博文不会一下子讲完各种运算符重载,因为太多了了也不好吸收掌握,所以运算符重载我准备分多次记录和分享,那么接下来进入正文
    2022-11-11
  • C语言实现家庭理财系统

    C语言实现家庭理财系统

    这篇文章主要为大家详细介绍了C语言实现家庭理财系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • OpenCV基于背景减除实现行人计数

    OpenCV基于背景减除实现行人计数

    本文主要介绍了如何使用OpenCV C++对视频中的人流量进行统计。文中的示例代码讲解详细,对我们学习OpenCV有一定的帮助,需要的可以了解一下
    2022-01-01
  • C++ select模型简单聊天室的实现示例

    C++ select模型简单聊天室的实现示例

    本文主要介绍了C++ select模型简单聊天室的实现示例,使用CMake项目进行开发,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C++中std::is_object的具体使用

    C++中std::is_object的具体使用

    std::is_object是一种C++类型特性,其用途是判断一个类型是否是一个对象类型,本文主要介绍了C++中std::is_object的具体使用,感兴趣的可以了解一下
    2024-01-01
  • C语言SetConsoleCursorPosition函数使用方法

    C语言SetConsoleCursorPosition函数使用方法

    这篇文章介绍了C语言SetConsoleCursorPosition函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C++11中std::move、std::forward、左右值引用、移动构造函数的测试问题

    C++11中std::move、std::forward、左右值引用、移动构造函数的测试问题

    这篇文章主要介绍了C++11中std::move、std::forward、左右值引用、移动构造函数的测试,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • C语言递归实现字符串逆序的方式详解

    C语言递归实现字符串逆序的方式详解

    这篇文章主要介绍了C语言递归实现字符串逆序的方式详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • C语言 指针数组详解及示例代码

    C语言 指针数组详解及示例代码

    本文主要介绍C语言 指针数组,这里提供详细的资料和简单示例代码以便大家学习参考,有需要学习的小伙伴可以参考下
    2016-08-08
  • [c++]变量声明与定义的规则详解

    [c++]变量声明与定义的规则详解

    这篇文章主要介绍了[c++]变量声明与定义的规则详解,对于学习c++的朋友来说这是一个很细腻的文章,代码完整,需要的朋友可以参考下
    2021-04-04

最新评论