Java冒泡排序原理速记,选择排序原理速记
Java冒泡排序原理速记,选择排序原理速记
冒泡排序原理分析:
冒泡排序从左往右两两比较;保护右边的排序好的元素(比较直接交换元素)。
选择排序原理:
选择排序从左往右依次比较;保护左边排序好的元素(比较后获取下标,之后再交换元素)。
1 | 5 | 12 | 36 | 55 | 78 | 98 |
---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
int[] a1 = new int[]{1, 5, 12, 36, 55, 78, 98};//冒泡排序for (int j = 0; j <= a1.length - 1; j++) {for (int k = 0; k < a1.length - j - 1; k++) {if (a1[k] < a1[k + 1]) {int tre;tre = a1[k];a1[k] = a1[k + 1];a1[k + 1] = tre;}}}for (int u : a1) {System.out.println("冒泡排序降序:" + u);}System.out.println("------------------");for (int j = 0; j <= a1.length - 1; j++) {for (int k = 0; k < a1.length - j - 1; k++) {if (a1[k] > a1[k + 1]) {int tre;tre = a1[k];a1[k] = a1[k + 1];a1[k + 1] = tre;}}}for (int u1 : a1) {System.out.println("冒泡排序升序:" + u1);}System.out.println("---------------");//选择排序for (int j = 0; j <= a1.length - 1; j++) {int miax = 0;//可以等于jfor (int k = j; k < a1.length - 1; k++) {if (a1[k] > a1[miax]) {miax = k;}}int tre;tre = a1[miax];a1[miax] = a1[j];a1[j] = tre;}for (int u1 : a1) {System.out.println("选择排序降序:" + u1);}System.out.println("--------------------");for (int j = 0; j <= a1.length - 1; j++) {int min = 0;for (int k = j; k < a1.length - 1; k++) {if (a1[k] < a1[min]) {min = k;}}int tre;tre = a1[min];a1[min] = a1[j];a1[j] = tre;}for (int u1 : a1) {System.out.println("选择排序升序:" + u1);}
共同点:
外层循环控制循环轮数,内层循环控制数组遍历,if语句作比较
分享完毕
Java冒泡排序原理速记,选择排序原理速记相关推荐
- 数组中冒泡排序、直接选择排序、反序排序原理与区别
冒泡排序 冒泡排序是最常用的排序算法之一,它排序的原理是 比较相邻元素的值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面,因为类似水中气泡往上升的动作,所以称作冒泡 ...
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...
- java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...
- 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
[排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...
- 冒泡排序算法和选择排序算法比较
冒泡排序算法详细内容见→冒泡排序算法. 选择排序算法详细内容见→选择排序算法. 冒泡排序算法和选择排序算法的区别: 冒泡排序是比较相邻位置的两个数:而选择排序是按顺序比较,找出最大值或者最 ...
- 选择排序java代码_JAVA简单选择排序算法原理及实现
简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...
- 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
最近在学习排序算法的一些知识.还是比较有趣的.所以好好研究了一下各个算法.并且使用matlab进行了个基本的实现,目前仅仅是实现吧,优化什么的可能目前的水平达不到吧,毕竟是用matlab实现,还是比较 ...
- java冒泡排序_JAVA实现经典排序算法(冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序)...
冒泡排序 依次比较相邻的元素,若发现逆顺序,则交换.小的向前换,大的向后换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成. import ...
- 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法
目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...
最新文章
- Linux umount 报 device is busy 的处理方法
- Linux学习之三——操作档案与目录
- 一块网卡设置多个IP地址
- hough变换检测直线 matlab,求能够运行的用matlab进行hough变换直线检测的程序。急!...
- Serializable和Parcelable
- javascript事件监听与事件委托
- 《网络与信息安全B》教学大纲
- c语言诗歌生成程序,在线诗歌生成器
- StyleBook皮肤控件的使用
- C++ BMP转JPG方法二
- win10 uwp 录制任意应用屏幕
- 探究:软件工程中的test oracle到底是什么意思?
- 搜搜移动业务大厅项目类的结构_2020年SEM小搜投放指南:竞价小渠道如何把效果做到极致...
- Markdown语法笔记
- android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
- keil5编译器退出调试时卡死
- springboot feign too many bytes written executing
- 自学前端到上岸工作系列之css03
- 增加(或减少)Kafka topic的副本数
- It is time you did something (注意这里要用过去式)