【Java学习笔记】09.冒泡排序和选择排序
来源:互联网 发布:魔法王座翅膀进阶数据 编辑:程序博客网 时间:2024/04/20 14:54
1.冒泡排序
1)基本概念:相邻的两个元素进行比较,小的放前面,大的放后面
(从小到大排序)存在10个不同大小的气泡,由底至上地把较少的气泡逐步地向上升,这样经过遍历一次后,最小的气泡就会被上升到顶(下标为0),然后再从底至上地这样升,循环直至十个气泡大小有序。
在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去
2)示例:
public class bubbleSort { public bubbleSort(){ int a[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; int temp=0; for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(int i=0;i<a.length;i++) System.out.println(a[i]); } }
排序思路
2.选择排序
1)原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。(这里只介绍常用的简单选择排序)
2)示例算法:
//选择排序public class SelectionSort { public static void main(String[] args) { int[] arr={1,3,2,45,65,33,12}; System.out.println("交换之前:"); for(int num:arr){ System.out.print(num+" "); } //选择排序的优化 for(int i = 0; i < arr.length - 1; i++) {// 做第i趟排序 int k = i; for(int j = k + 1; j < arr.length; j++){// 选最小的记录 if(arr[j] < arr[k]){ k = j; //记下目前找到的最小值所在的位置 } } //在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换 if(i != k){ //交换a[i]和a[k] int temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } System.out.println(); System.out.println("交换后:"); for(int num:arr){ System.out.print(num+" "); } }}
举例理解:
0 0
- 【Java学习笔记】09.冒泡排序和选择排序
- Java学习笔记:冒泡排序算法和选择排序算法
- Java 数组排序(冒泡和选择排序) 学习笔记
- JAVA学习笔记之选择排序与冒泡排序
- [算法学习笔记]冒泡排序和选择排序
- Java选择和冒泡排序
- 选择排序和冒泡排序的学习
- java实现选择排序和冒泡排序
- java之冒泡排序和选择排序
- Java冒泡排序和选择排序
- java版选择排序和冒泡排序
- Java 实现冒泡排序和选择排序
- java冒泡排序和选择排序
- java选择排序和冒泡排序
- Java中的选择排序和冒泡排序
- Java选择排序和冒泡排序示例
- java选择排序和冒泡排序
- Java基础---选择排序和冒泡排序
- 关于百度地图定位异常的问题
- 1005. 继续(3n+1)猜想 (25)
- ndkBuild脚本运行
- phpexcel导出、导入excel文件
- ACM-逆波兰表达式
- 【Java学习笔记】09.冒泡排序和选择排序
- SQL Server中角色与权限管理
- 腾讯云Ubuntu服务器使用(2)
- Android给scrollView截图超过屏幕大小形成长图
- JavaScript 商品价格排序
- 静态变量初始化过程 【精品】
- Redis 键(key)
- where,having与 group by连用的区别
- git 本地仓库的初始化及多节点批量同步