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



目录
相关文章
|
2天前
|
算法 数据中心 C++
基于C++雪花算法工具类Snowflake -来自chatGPT
基于C++雪花算法工具类Snowflake -来自chatGPT
8 1
|
8天前
|
算法 数据处理 C++
C++一分钟之-迭代器与算法
【6月更文挑战第21天】C++ STL的迭代器统一了容器元素访问,分为多种类型,如输入、输出、前向、双向和随机访问。迭代器使用时需留意失效和类型匹配。STL算法如查找、排序、复制要求特定类型的迭代器,注意容器兼容性和返回值处理。适配器和算法组合增强灵活性,但过度使用可能降低代码可读性。掌握迭代器和算法能提升编程效率和代码质量。
23 3
|
9天前
|
C++
C++ : 程序设计简单实例
C++ : 程序设计简单实例
14 3
|
9天前
|
安全 C++
C++:程序设计实例
C++:程序设计实例
13 2
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
30 1
|
11天前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
1天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
2天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
11 0
|
2天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
|
3天前
|
算法 搜索推荐 C++
C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)
C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)
12 0