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冒泡排序原理速记,选择排序原理速记相关推荐

  1. 数组中冒泡排序、直接选择排序、反序排序原理与区别

    冒泡排序 冒泡排序是最常用的排序算法之一,它排序的原理是 比较相邻元素的值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面,因为类似水中气泡往上升的动作,所以称作冒泡 ...

  2. 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  3. java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  4. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析

    [排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...

  5. 冒泡排序算法和选择排序算法比较

      冒泡排序算法详细内容见→冒泡排序算法.   选择排序算法详细内容见→选择排序算法.   冒泡排序算法和选择排序算法的区别: 冒泡排序是比较相邻位置的两个数:而选择排序是按顺序比较,找出最大值或者最 ...

  6. 选择排序java代码_JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  7. 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现

    最近在学习排序算法的一些知识.还是比较有趣的.所以好好研究了一下各个算法.并且使用matlab进行了个基本的实现,目前仅仅是实现吧,优化什么的可能目前的水平达不到吧,毕竟是用matlab实现,还是比较 ...

  8. java冒泡排序_JAVA实现经典排序算法(冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序)...

    冒泡排序 依次比较相邻的元素,若发现逆顺序,则交换.小的向前换,大的向后换,本次循环完毕之后再次从头开始扫描,直到某次扫描中没有元素交换,说明每个元素都不比它后面的元素大,至此排序完成. import ...

  9. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

最新文章

  1. Linux umount 报 device is busy 的处理方法
  2. Linux学习之三——操作档案与目录
  3. 一块网卡设置多个IP地址
  4. hough变换检测直线 matlab,求能够运行的用matlab进行hough变换直线检测的程序。急!...
  5. Serializable和Parcelable
  6. javascript事件监听与事件委托
  7. 《网络与信息安全B》教学大纲
  8. c语言诗歌生成程序,在线诗歌生成器
  9. StyleBook皮肤控件的使用
  10. C++ BMP转JPG方法二
  11. win10 uwp 录制任意应用屏幕
  12. 探究:软件工程中的test oracle到底是什么意思?
  13. 搜搜移动业务大厅项目类的结构_2020年SEM小搜投放指南:竞价小渠道如何把效果做到极致...
  14. Markdown语法笔记
  15. android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
  16. keil5编译器退出调试时卡死
  17. springboot feign too many bytes written executing
  18. 自学前端到上岸工作系列之css03
  19. 增加(或减少)Kafka topic的副本数
  20. It is time you did something (注意这里要用过去式)

热门文章

  1. 网络学习-3.传输介质和设备
  2. Codeforces-1604 D: Moderate Modular Mode
  3. js正则匹配处理样式class style
  4. Python环境安装分享(附教程)
  5. ifnull mysql 所有列_mysql IFNULL IF
  6. keep-alive 介绍
  7. Android自定义View实现打钩签到动画
  8. VSCode 配置一条龙 CPP/CC
  9. 基于python的星号三角形
  10. PageInfo分页无效解决