看动画学算法之:排序-冒泡排序
文章目录
- 简介
- 冒泡排序的原理
- 冒泡排序算法的java实现
- 冒泡算法的第一次改进
- 冒泡算法的第二次改进
- 冒泡排序的时间复杂度
简介
排序可能是所有的算法中最最基础和最最常用的了。排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序。
排序算法有很多种,每个都有其自身的优点和局限性。
今天我们来学习最最简单的冒泡排序算法。
冒泡排序的原理
冒泡排序的原理很简单,我们想象一下一个一个的气泡上浮的过程。
假设我们有八个数字 29,10,14,37,20,25,44,15 要进行排序。
我们先用一个动画图来直观的观察一下整个冒泡排序的过程:
排序共进行八轮,每一轮都会做两两比较,并将较大的元素右移,就像冒泡一下。
一轮结束之后,八个元素中最大的那个元素44将会移动到最右边。
然后再重复其他的几轮。最终得到一个完全排序的数组。
也可以这样看:
第一轮是将八个元素中的最大值44交换移动到最右位置。
第二轮是将八个元素中的次大值37交换移动到最右位置。
以此类推。
看动画学算法之:排序-冒泡排序相关推荐
- 冒泡排序java代码_看动画学算法之:排序冒泡排序
点击上方的蓝字关注我吧 程序那些事 简介 排序可能是所有的算法中最最基础和最最常用的了.排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序. 排序算法有很多种,每个都有 ...
- 看动画学算法之:排序-基数排序
文章目录 简介 基数排序的例子 基数排序的java代码实现 基数排序的时间复杂度 简介 之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过 ...
- 看动画学算法之:排序-count排序
文章目录 简介 count排序的例子 count排序的java实现 count排序的第二种方法 count排序的时间复杂度 简介 今天我们介绍一种不需要作比较就能排序的算法:count排序. coun ...
- 看动画学算法之:排序-归并排序
文章目录 简介 归并排序的例子 归并排序算法思想 归并排序的java实现 归并排序的时间复杂度 简介 归并排序简称Merge sort是一种递归思想的排序算法.这个算法的思路就是将要排序的数组分成很多 ...
- 看动画学算法之:排序-插入排序
文章目录 简介 插入排序的例子 插入排序的java程序 插入排序的时间复杂度 简介 插入排序就是将要排序的元素插入到已经排序的数组中,从而形成一个新的排好序的数组. 这个算法就叫做插入排序. 插入排序 ...
- 看动画学算法之:排序-快速排序
文章目录 简介 快速排序的例子 快速排序的java代码实现 随机快速排序的java实现 快速排序的时间复杂度 简介 快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排 ...
- 看动画学算法之:排序-选择排序
文章目录 简介 选择排序的例子 选择排序的java代码实现 选择排序的第二种java实现 选择排序的时间复杂度 简介 选择排序就是从数组中选择出来最大或者最小的元素,然后将其和队首或者队尾的元素进行交 ...
- 如何快速找出找出两个数组中的_看动画学算法之:排序-快速排序
简介:快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并. 而快速排序虽然也是拆分,但是拆分之后的操 ...
- 看动画学算法之:二叉搜索树BST
文章目录 简介 BST的基本性质 BST的构建 BST的搜索 BST的插入 BST的删除 看动画学算法之:二叉搜索树BST 简介 树是类似于链表的数据结构,和链表的线性结构不同的是,树是具有层次结构的 ...
最新文章
- 谷歌浏览器出现方格xp系统_win10系统谷歌浏览器扩展程序打不开的解决方案
- Redis集群部署文档(Ubuntu15.10系统)
- java ftp上传文件_jaVA使用FTP上传下载文件的问题
- 贪心——FatMouse' Trade(hdu1003)
- 怎么用shell ssh,然后再exit?
- STM32F429HAL库定时器学习笔记
- jack插头_防水连接器航空插头特点
- 《算法设计》求单峰数组
- [转帖]从 2G 到 5G,手机上网话语权的三次改变
- 阿里云mysql导出表_mysql导出数据库表
- websphere liberty
- Rfb-Net(代码解读慢慢啃).
- Redis数据结构-sds
- 160x128JAva_GitHub - hanang128/X-SpringBoot: X-SpringBoot是一个轻量级的Java快速开发平台,能快速开发项目并交付【接私活利器】...
- 用matlab绘制三维图和三视图
- [转帖]彩色硬盘 关于西数硬盘 企业盘、黑盘、蓝盘、绿盘、红盘的区别
- JVM-调优《常见可视化工具与命令行的使用》
- 【论文阅读】Region Proposal by Guided Anchoring
- 计算机动画设计与影视制作,计算机动画设计及制作中的特效技术
- 板载2.5G网卡,新组装电脑无法联网,Win10系统显示“以太网 网络电缆被拔出”的解决方法