【排序算法】冒泡排序法 & 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



目录
相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
57 4
|
20天前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
19天前
|
并行计算 算法 IDE
【灵码助力Cuda算法分析】分析共享内存的矩阵乘法优化
本文介绍了如何利用通义灵码在Visual Studio 2022中对基于CUDA的共享内存矩阵乘法优化代码进行深入分析。文章从整体程序结构入手,逐步深入到线程调度、矩阵分块、循环展开等关键细节,最后通过带入具体值的方式进一步解析复杂循环逻辑,展示了通义灵码在辅助理解和优化CUDA编程中的强大功能。
|
1月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
386 0
高精度算法(加、减、乘、除,使用c++实现)
|
1月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
16 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
26天前
|
算法
PID算法原理分析
【10月更文挑战第12天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
1月前
|
算法
PID算法原理分析及优化
【10月更文挑战第6天】PID控制方法从提出至今已有百余年历史,其由于结构简单、易于实现、鲁棒性好、可靠性高等特点,在机电、冶金、机械、化工等行业中应用广泛。
|
1月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
13 0
|
1月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
|
1月前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
37 0