【排序算法】冒泡排序法 & C++实现 | [实例过程分析]

简介: 冒泡排序法 & C++实现

●冒泡排序法


1.简要介绍

冒泡排序算法代码段:

for (int i = 0; i < len-1; i++)
  {
        int temp;
  for(int j=len-1;j>i;j--)
  { 
    if (a[j] > a[i])
    {
    temp = a[j];
    a[j ] = a[i];
    a[i] = temp;
    }
  }
  }

2.图形化演示

下面以代码程序排序中后五个数为例(从大到小排序),进行一个大致的图形排序理解。


       进行第一行中的排序,①不交换②交换③不交换④交换;


       进行第二行中的排序,①不换②不换③不换;


       进行第三行中的排序,①不交换②不交换;


       进行第四行中的排序,①不交换;


       第五行排序完成。

124c61d0a8aa70bbd5397ab37213c3b3_5b3ec71e97304b53bdb9561aac5a0dcd.png


3.代码如下

#include<iostream>
using namespace std;
#define size 10
class bubblesort {
public:
  void bubblesort_1(int a[],int len);
  void shownumber();
  int arr[size];
};
void bubblesort::bubblesort_1(int a[],int len)
{
  int temp;
  for (int i = 0; i < len-1; i++)
  {
  for(int j=len-1;j>i;j--)
  { 
    if (a[j ] > a[i])
    {
    temp = a[j ];
    a[j ] = a[i];
    a[i] = temp;
    }
  }
  //测试代码
  cout << i + 1 << ":" << " ";
  for (int k = 0; k < len; k++)
  {
    cout << a[k] << " ";
  }
  cout << endl;
  }
}
void bubblesort::shownumber()
{
  for (int i = 0; i < size; i++)
  {
  cout << this->arr[i] << " ";
  }
}
void text()
{
  bubblesort bs;
  for (int i = 0; i < size; i++)
  {
  cin >> bs.arr[i];
  }
  bs.bubblesort_1(bs.arr, size);
  bs.shownumber();
}
int main()
{
  text();
}

4.结果如下

4cff96706111e91f39f848d2c848c004_1915a151b15b4f29b75c4886617b4f51.png



目录
相关文章
|
4月前
|
程序员 编译器 C++
【C++核心】C++内存分区模型分析
这篇文章详细解释了C++程序执行时内存的四个区域:代码区、全局区、栈区和堆区,以及如何在这些区域中分配和释放内存。
62 2
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
138 67
|
2月前
|
Ubuntu Linux Shell
C++ 之 perf+火焰图分析与调试
【11月更文挑战第6天】在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,最近了解到Perf这个神器,这里也展开介绍一下如何使用Perf以及如何去画火焰图。
103 5
|
3月前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
3月前
|
存储 算法 搜索推荐
对二叉堆的简单分析,c和c++的简单实现
这篇文章提供了对二叉堆数据结构的简单分析,并展示了如何在C和C++中实现最小堆,包括初始化、插入元素、删除最小元素和打印堆的函数,以及一个示例程序来演示这些操作。
45 19
|
3月前
|
Ubuntu Linux Shell
C++ 之 perf+火焰图分析与调试
【10月更文挑战第8天】在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,最近了解到Perf这个神器,这里也展开介绍一下如何使用Perf以及如何去画火焰图。
|
3月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
25 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
3月前
|
搜索推荐 算法 数据可视化
深入解析冒泡排序算法
深入解析冒泡排序算法
52 4
|
3月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
22 0
|
3月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析