C++冒泡排序简单讲解

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

此文章我已在洛谷博客发布,不算抄袭

什么是冒泡排序

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

冒泡排序的基本思想

重复地走访要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。
走访元素的工作要重复地进行,直到没有相邻元素需要交换时,说明全部元素已经排序完成。
走访的元素———比作是一个“气泡”,“气泡“一步一步向上翻滚,完成排序。文章来源地址https://www.toymoban.com/news/detail-417615.html

冒泡排序的可视化动画

代码展示

从大到小排序

#inlcude <iostream>
using namespace std;
int main(){
	int a[101];
	int n;
	cin>>n;
	for(int i = 1;i<=n;i++){
		cin>>a[i];
	}
	//每趟排好一个数字,第一趟结束把最大值排好到最后一位
	for(int k = 1;k <= n-1;k++){
		for(int i=1;i<=n-k;i++){
			if(a[i]>a[i+1]){//顺序错误
				swap(a[i],a[i+1]);
			}
		}
	}
	for(int i=1;i<=n;i++){
		cout<<a[i]<<" ";
	}
}

从小到大排序

#inlcude <iostream>
using namespace std;
int main(){
	int a[101];
	int n,flag;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	//一共n-1趟
	for(int k=1;k<=n-1;k++) {
		//每趟排好一个数字,第一趟结束把最大值排好到最后一位
		flag=0;
		for(int i=1;i<=n-k;i++){
			if(a[i]>a[i+1]){//顺序错误
				swap(a[i],a[i+1]);
				flag=1;
			}
		}
		if(flag==0){ //这趟排序中没有出现交换
			break;//说明已经排好序了,break终止循环
		}
	}
	for(int i=1;i<=n;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}

}

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

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

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

相关文章

  • 七大排序算法——冒泡排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月16日
    浏览(39)
  • 冒泡排序的简单理解

    冒泡排序是一种交换排序,基本思想是在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 即每当两个相邻的数比较后发现它们的顺序与排序要求相反时,就将它们互换。 冒泡排序

    2023年04月12日
    浏览(34)
  • Shell脚本实现数组冒泡排序等简单算法排序

    目录 一、冒泡排序 1.简介 2.基本思想 3.算法思路 4.shell脚本实现 二、选择排序 1.简介 2.基本思想 3.shell脚本实现 三、插入排序 1.算法思路 2.shell脚本实现 四、反转排序 1.作用 2.shell脚本实现 类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断的向前移动。 冒

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

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

    2023年04月08日
    浏览(42)
  • Go 语言实现冒泡排序算法的简单示例

    以下是使用 Go 语言实现冒泡排序算法的简单示例: 在这个例子中, bubbleSort 函数接收一个整数切片,对切片中的元素进行冒泡排序。在 main 函数中,我们定义了一个示例数组,调用 bubbleSort 函数对其进行排序,并输出结果。 注意,冒泡排序算法的时间复杂度为 O(n^2),因此对

    2024年01月23日
    浏览(47)
  • 【C++实现插入排序、希尔排序、冒泡排序、快速排序、选择排序】

    使用C++实现来插入排序、希尔排序、冒泡排序、快速排序、选择排序算法。 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而生成一个新

    2024年02月06日
    浏览(48)
  • 冒泡排序实现(c++)

    目录 冒泡排序简介: 冒泡排序原理: 动图演示:  代码实现: 冒泡排序,最优时间复杂度O(N),平均时间复杂度O(N^2),最差空间复杂度O(N),平均时间复杂度O(1)是一种代码简单的排序也是几乎最慢的算法,(稳定)。 比较相邻的元素。如果第一个比第二个大,就交换他们两

    2024年02月07日
    浏览(31)
  • C++算法之冒泡排序

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

    2024年02月14日
    浏览(42)
  • C++冒泡排序代码实现

    冒泡排序是一组数据元素中的相邻元素两两比较,如果满足前一个元素(i)比后一个元素(i+1)大则这两个元素交换,否则向后比较元素(i+1)和元素(i+2),这只是一轮排序。有n个元素需要排n-1轮,每一轮的排序都不用比较之前已经排好的数据,所以第i轮的比较次数为(n-i-1)次。(个人

    2024年02月16日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包