冒泡排序实现(c++)

这篇具有很好参考价值的文章主要介绍了冒泡排序实现(c++)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

冒泡排序简介:

冒泡排序原理:

动图演示:

 代码实现:


冒泡排序简介:

冒泡排序,最优时间复杂度O(N),平均时间复杂度O(N^2),最差空间复杂度O(N),平均时间复杂度O(1)是一种代码简单的排序也是几乎最慢的算法,(稳定)。


冒泡排序原理:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


动图演示:

冒泡排序实现(c++)

冒泡排序实现(c++)

 代码实现:

#include<bits/stdc++.h>
using namespace std;
int n, a[10000005];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)//输入
    cin>>a[i]; 
    for(int i=1;i<n;i++)//总共进行n-1轮冒泡
    {
         for(int j=1;j<=n-i;j++)//一轮冒泡  
         {
              if(a[j]>a[j+1])
              {
                   swap(a[j],a[j+1]);
              }
         }
    }
    for(int i=1;i<=n;i++)//输出
    cout<<a[i]<<" ";
    return 0;//结束
}

这就是最简单的排序算法——冒泡排序。

补充一下:

为了使我们更好的观察冒泡排序的过程,下面的程序可以将每轮冒泡输出。

#include<bits/stdc++.h>
using namespace std;
int n, a[105]; 
int main()
{
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];//输入 
    for(int i=1;  i<n ;  i++)  //n-1轮冒泡
    {    
        for(int j=1; j<= n-i ; j++)  //一轮冒泡
         {
              if( a[j]>a[j+1] ) 
                   swap(a[j],a[j+1]);   
         }
    for(int m=1; m<=n; m++) cout<<a[m]<<" ";  //输出
	cout<<endl;//换行
	}
    return 0;
}

输入,输出:

in:

9

9  5  6  8  2  7  3  4  1

out:

5  6  8  2  7  3  4  1  9

5  6  2  7  3  4  1  8  9

5  6  2  3  4  1  7  8  9

5  2  3  4  1  6  7  8  9

2  3  4  1  5  6  7  8  9

2  3  1  4  5  6  7  8  9

2  1  3  4  5  6  7  8  9

1  2  3  4  5  6  7  8  9

这就是这篇文章的全部内容,非常感谢你能看到这,如果可以,请给我点个赞,下期做插入、选择,和快排。文章来源地址https://www.toymoban.com/news/detail-468410.html

到了这里,关于冒泡排序实现(c++)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++实现冒泡排序算法(含源码)

    C++实现冒泡排序算法(含源码) 冒泡排序是一种简单的排序算法,它通过不断交换相邻的元素,将较大的元素逐步\\\"浮\\\"到待排序列的尾部,从而实现排序。下面是C++的冒泡排序实现代码: 该函数接受一个整型数组和数组长度作为参数,在每次遍历中,它比较相邻的两个元素,将

    2024年02月07日
    浏览(42)
  • 常用的排序算法简介:冒泡、选择、插入、归并、快速

    常用的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序。以下是它们的简单介绍: 1. 冒泡排序(Bubble Sort):    冒泡排序是一种经典的基于交换的排序算法。它重复地比较相邻的元素,如果顺序错误,则交换它们,直到整个序列有序。它的时间复杂度为

    2024年02月14日
    浏览(43)
  • C++常见排序算法——冒泡排序算法

    首先说一下冒泡排序的基本算法思想: 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸

    2023年04月08日
    浏览(42)
  • 插入/希尔/选择/堆/冒泡/快速/归并/计数排序 && 排序原理 && 搜索树原理 && 哈希概念

    第 1 题(编程题) 题目名称: 插入排序和希尔排序 题目内容: 第 2 题(编程题) 题目名称: 选择排序和堆排序 题目内容: 第 3 题(编程题) 题目名称: 冒泡排序和快速排序 题目内容: 第 1 题(单选题) 题目名称: 2.使用选择排序对长度为100的数组进行排序,则

    2024年02月07日
    浏览(54)
  • C++冒泡排序简单讲解

    冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经

    2023年04月18日
    浏览(29)
  • C++算法之冒泡排序

    试想一下,如果在上体育课的时候,通常学生都会随意站成一列,但是体育老师会帮忙调整学生的站位使得最终顺序是按照身高排序的。那么,回忆一下体育老师是如何调整顺序的呢? 假设体育老师想将学生从左到右按照身高从矮到高排序。通常情况下,他会从左到右扫视学

    2024年02月14日
    浏览(42)
  • c++排序算法——冒泡排序(不会的一定要看,超级详细)

    今天,我们来学习一种排序算法—— 冒泡排序 。 首先,先问三个问题: 想象一下,如果字典不是按照字母顺序排列,查找一个单词,你得查到什么时候?这就是为什么人们引入了分类的概念,因为其 极大地帮助我们快速搜索物品 。 或者说,排序是一种常用的整理信息的方

    2024年02月16日
    浏览(45)
  • 湘大 XTU OJ 1097 排序 题解:c++ 函数库的使用 快速排序 归并排序 冒泡排序

    1097 排序 Description N个整数,将其排序输出。 输入 第一行是一个整数K(1=K=20),表示有多少个样例, 每个样例的第一行是一个整数N(1=N=1,000) 和一个字符X,X为A时表示升序排序,为D时为降序排列;第二行为N个整数,每个整数都可以使用int表示, 每个之间用一个空格隔开。

    2024年02月13日
    浏览(42)
  • 【C++实战小项目】通讯录(四) 冒泡排序通过string首字母排序多个数组

    🧛‍♂️iecne个人主页: : iecne的学习日志 💡每天 关注 iecne的作品,一起进步 💪一起学习,必看iecne 🐳希望大家多多支持🥰一起进步呀! 首先制作一款通讯录我们可以将它分为以下部分 增加联系人 删除联系人 查找联系人 修改联系人 打印通讯录 排序通讯录 这一期我们

    2024年01月19日
    浏览(52)
  • Java实现:选择排序、冒泡排序、插入排序

    本文我们将使用Java编程语言实现经典的选择排序、冒泡排序和插入排序算法,并用对数器进行测试。 选择排序的基本思想是:遍历数组,每次找到数组中最小的元素,将其放到数组的前端。接着,在剩余的元素中继续寻找最小的元素,将其放在已找到的最小元素之后。重复

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包