java冒泡排序经典代码6_经典排序算法之冒泡排序
一,算法原理
冒泡排序是交换排序的一种,原理是通过比较相邻两个元素的大小,如果发现顺序不对,就交换这两个元素的位置。当第一次循环结束时,最大的元素就被筛选出来,然后进入第二次循环,以此类推,直到没有任何一对数据进行比较。
下面看一个案例:
假设有5个数字,依次为:5,4,6,3,1
用冒泡排序的思想来实现的话,过程是这样的:
外层第一次循环:
4,5,6,3,1 -> 4,5,6,3,1 -> 4,5,3,6,1 -> 4,5,3,1,6找到最大数6
外层第二次循环:
4,5,3,1,6 -> 4,3,5,1,6 -> 4,3,1,5,6找到倒数第二大的数字5
外层第三次循环:
3,4,1,5,6 -> 3,1,4,5,6
外层第四次循环:
1,3,4,5,6
至此排序完成。
二,Java代码实现public class Demo1 {
public static void main(String[] args) {
int[] arr = {5,4,6,3,1};
//创建一个Bubble类
Bubble bubble = new Bubble();
bubble.sort(arr);
//输出最后结果
for(int i=0;i
{
System.out.print(arr[i]+" ");
}
}
}
//冒泡排序
class Bubble{
//排序方法
public void sort(int arr[])
{
int temp=0;
//排序
//外层循环,表示一共走几次
for(int i=0;i
{
//内层循环,开始逐一比较,如果发现前一个数字比后一个数字大,则交换
for(int j=0;j
{
if(arr[j]>arr[j+1])
{
//换位
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
运行结果为:1 3 4 5 6
java冒泡排序经典代码6_经典排序算法之冒泡排序相关推荐
- 冒泡排序c++代码_八大排序算法(解释+代码+结果+算法优化)
>>>欢迎点赞,收藏,转发! 评论区获取源代码与更多更全干货!<<< 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,不需要访问外存便能完成 ...
- 十大经典排序算法之冒泡排序【一】
[冒泡排序](Bubble Sort) a) 原理 冒泡排序是最简单的排序算法.它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列.查询数列的工作直到 ...
- Java排序算法:冒泡排序
Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...
- 排序算法之冒泡排序(Java版)
排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序: 是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
[排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...
- 排序算法:冒泡排序、插入排序、选择排序、希尔排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 排序算法之冒泡排序及鸡尾酒排序
目录 一.排序算法的分类 二.冒泡排序 1.原始的冒泡排序 2.改进一步的冒泡排序 3.更进一步的冒泡排序 三.鸡尾酒排序 四.完整测试代码 一.排序算法的分类 在介绍排序算法之前,我们先根据时间复杂 ...
- 我们一起来排序——使用Java语言优雅地实现常用排序算法
破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...
最新文章
- 枚举(Enumerations)
- 7篇Nature,2篇Science!这所985高校迎来顶刊大丰收
- 6.extern “c”
- python中curve fit_在python中拟合多变量curve_fit
- Windows Mobile 5 编程体验4
- 浅析:提升手机APP开发和运营成效的经验分享
- MAC 下的SVN客户端 Versions、SmartSVN、Cornerstone
- Semantic UI 之 下拉菜单 dropdown
- 小学-知识与能力【5】
- 使用版本控制软件TortoiseSVN对程序和文档进行控制的说明
- CS231n课程笔记翻译2:图像分类笔记
- 大蟒蛇python头像_Python微信好友头像大拼图案例
- Android scroller控件,Android Scroller完全解析
- 我的大学-5-34-林陆
- 新年亲朋好友最经典的“互相伤害”,你中过几条?
- 华为linux系统安装包,一、Linux系统安装
- opencv_contrib安装笔记
- 开启cdn后导致websocket10秒直接断开连接 报错1006
- mysql 代码书写,【单选题】mysql 的代码书写规则是()
A. 不区分大小写 B. 必须全部大写 C. 必须全部小写 D. 以上答案都不对...
- java 简述类变量和实例变量的区别
热门文章
- Pentium 4处理器架构/微架构/流水线 (2) - SSE2
- GLSurfaceView基础学习笔记
- 我的 计算机朋友作文,电脑我的朋友作文
- js如何提高for循环的效率_如何提高rv减速机的散热效率
- MySQL存储过程的使用
- accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
- 挑战Unity、UE4,曾戈祭出次世代VR引擎
- laravel 5 自定义全局函数,怎么弄呢?
- Android模块化之MicroModule(微信Pins工程)
- JS String 对象 常用方法