IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 冒泡算法个人理解 -> 正文阅读

[数据结构与算法]冒泡算法个人理解

排序算法-冒泡排序

代码

int a[8] = { 80, 2, 3, 24, 34, 90, 32, 43};
		for (int Z = 0; Z < 8; Z++)  //比较n-1轮
		{
			std::cout << a[Z] << " ";
		}
		std::cout << std::endl;
	
		for (int i = 0; i < 8 - 1; i++)  //比较n-1轮
		{
			for (int A = 0; A < 8 - 1 - i; A++)  //每轮比较8-1-i次,
			{
			int B = A+1;
				if (a[A] < a[B])
				{
					int tmp = a[A];
					a[A] = a[B];
					a[B] = tmp;
				}
			}
			for (int Z = 0; Z < 8; Z++)  //比较n-1轮
			{
				std::cout << a[Z] << " ";
			}
			std::cout << std::endl;
		}

结果

在这里插入图片描述

注释

数组大小为N,比较开始值的角标为A,被比较的值的角标为B

算法解释

比较思路

首选看第二个循环,在冒泡算法中A与B的关系为B = A+1;
再次看第二个循环,冒泡算法的比较思路为在将A的值与B的值进行比较,如果B与A的值满足条件,则发生值互换,而不论该次是否发生互换,则本次循环结束,A与B同时加1,直至B等于该数组最大值;

循环限制思路

此时返回第一个循环处:当第一个循环第一次结束后,满足条件的值已经被放至该数组最后一位;所以在第一个循环进入下一次后,则最后一位不需要再次进行比较;因此每一轮的循环后,都会在后面产生对应数量的不需要比较的值的数量,因此第二个循环不需要进行全部的比较排序;并且为了保证B值不会越界,所以在第二个循环中A值最大只能为该数组大小-1

并且,由比较思路可以看出,因为A与B的关系,因此该比较算法需要进行的大循环的次数为N-1次;

在这一过程中的数组中的每一个元素进行呼唤逐渐变为有序的过程就是冒泡排序

比较次数

算法解释可以看出
第一次比较的数量为 N-1 - 0(已经循环次数)
第二次比较的数量为 N-1 - 1(已经循环次数)
第三次比较的数量为 N-1 - 2(已经循环次数)
所以该算法的比较次数为 N-1+N-2+N-3+***+1 = N ( N– 1) / 2

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:55:23  更:2021-12-09 11:57:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/10 2:45:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码