Java中冒泡排序与选择排序
来源:互联网 发布:c语言中函数和 编辑:程序博客网 时间:2024/05/21 17:28
一.冒泡排序
1)定义:相邻两个数比较大小,然后交换位置
2) 分析:
原数 3 2 5 1 第一趟: 2 3 5 1 2 3 5 1 array.length-1-0 2 3 1 5 确定了一个数(把最大值放在最后面) 第二趟: 2 3 1 5 array.length-1-1 2 1 3 5 又确定了一个数 第三趟: 1 2 3 5 array.length-1-2 --->array.length-1-i
2)代码
1:
public static void main(String[] args) { //某一天 把冒泡排序敲下来 熟练工种 // TODO Auto-generated method stub int[]array=new int[] {3,2,5,1}; //该方法没有返回值 实际上 这个方法操作的是原数组 //外层循环控制 比较的趟数 //内层循环控制 -1:避免数组越界 //内循环 -2:每一趟比较 确定一个数 就意味着 少比较一次 for(int i=0;i<array.length-1;i++) { for(int j=0;j<array.length-1-i;j++) { if(array[j]>array[j+1]) { //交换位置 int temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } System.out.println(Arrays.toString(array));
2:
public class Demo03 { //需求:封装一个函数 进行冒泡排序 public static void sort(int []array) { for(int i=0;i<array.length-1;i++) { for(int j=0;j<array.length-1-i;j++) { if(array[j]>array[j+1]) { int temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } }System.out.println(Arrays.toString(array)); } public static void main(String[] args) { //传入的数组 相当于把数组的首地址传过去 //注意:这里是地址的传递 //拿到地址 就可以随便的更改数组元素的位置 //这是sort函数中 就是对原数组 进行操作 int[]array=new int[] {3,2,5,1}; sort(array); }}
二.选择排序
1.定义:选择一个数 与 下一个数进行比较
(用这个数和数组中的每一个数进行比较)
一般来说,就选择第0个数交换位置
2.代码
public class Demo04 { public static void main(String[] args) { int[]array=new int[] {3,2,5,1}; //外循环-1:最后一个数 不用比较了 //内循环 j=1开始 因为 array[0] 和array[0]不用比较 // 内循环 +i:每一趟比较 确定一个数 // 也就是说 每次都可以少比较一个数 for(int i=0;i<array.length-1;i++) { for(int j=1+i;j<array.length;j++) { /* * 分析: 谁 和 谁 进行交换 * array[j] 和 array[i] 进行比较 交换位置 * */ if(array[j]<array[i]) { //交换 int temp=array[j]; array[j]=array[i]; array[i]=temp; } } } System.out.println(Arrays.toString(array)); // System.out.println(Arrays.sort(array)); } }
阅读全文
0 0
- java中冒泡排序与选择排序
- Java中冒泡排序与选择排序
- java中冒泡排序与选择排序的区别
- java中的冒泡排序与选择排序
- java之冒泡排序与选择排序
- java选择排序与冒泡排序
- Java中冒泡排序和选择排序
- java中选择排序和冒泡排序
- java中冒泡排序和选择排序
- Java常用排序算法冒泡排序与选择排序总结
- 冒泡排序与选择排序
- 选择排序与冒泡排序
- 选择排序与冒泡排序
- 选择排序与冒泡排序
- 冒泡排序与选择排序
- 冒泡排序与选择排序
- 选择排序与冒泡排序
- 冒泡排序与选择排序
- Python3 CookBook | 数字处理
- RecyclerView的使用(二)——拖曳移动和滑动删除
- 2141 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(方法2)
- 3
- dubbo配置详解
- Java中冒泡排序与选择排序
- caffe中使用droupout层对cifar10图片集提高准确率10%(0.62到0.72)
- HDU 1429
- 5483. 【清华集训2017模拟11.26】简单路径
- 机器学习_内积/相关系数/协方差/标准差之间的联系
- android studio 自动导包设置
- Android_Retrofit2.0
- HDU 1232畅通工程
- Ionic3项目开发——页面跳转与参数传递