JAVA学习笔记39——冒泡排序:简单版+优化版+最终版
来源:互联网 发布:适合打lol的鼠标 知乎 编辑:程序博客网 时间:2024/06/17 17:29
最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。
本篇插入一个容器方面排序的小练习,进行三种优化程度不同的冒泡排序,简单版:简单直接;优化版:减少每趟次数;最终版:考虑有序,减少趟数。
在介绍之前先说一下容器排序的概念:
下面看一下实例代码,首先是最简单直接的一个版本:
import java.util.Arrays;public class BubbleSort1 {/** * @param args */public static void main(String[] args) {int[] arr ={9,8,7,6,5};sort(arr);}//第一版本(简单版),很简单,有些已经比较交换过但仍然重复比较交换多次public static void sort(int[] arr){int len =arr.length;for(int j=0;j<len-1;j++){System.out.println("第"+(j+1)+"趟");for(int i=0;i<len-1;i++){System.out.print("第"+(i+1)+"次");if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] =arr[i+1];arr[i+1] =temp;}System.out.println(Arrays.toString(arr));}}}}然后是优化的第二版:
import java.util.Arrays;public class BubbleSort2 {/** * @param args */public static void main(String[] args) {int[] arr ={9,8,7,6,5};sort(arr);}//第二版本,减少每一趟的次数public static void sort(int[] arr){int len =arr.length;for(int j=0;j<len-1;j++){ //趟数System.out.println("第"+(j+1)+"趟");for(int i=0;i<len-1-j;i++){ //次数(已经沉到底的数就不要管了,所以缩小每一次的交换次数,做到每一趟都少一次交换)System.out.print("第"+(i+1)+"次");if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] =arr[i+1];arr[i+1] =temp;}System.out.println(Arrays.toString(arr));}}}}最后是优化程度最高的最终版:
import java.util.Arrays;/** * 最终版本:考虑存在顺序 * @author Administrator * */public class BubbleSort {/** * @param args */public static void main(String[] args) {int[] arr =new int[]{9,1,2,3,4};sortFinal(arr);}//第二版本,减少每一趟的次数public static void sortFinal(int[] arr){boolean sorted= true; //初始假定有序int len =arr.length;for(int j=0;j<len-1;j++){ //趟数sorted =true; //假定有序,每次交换的开始都假定有序,如果存在交换那么本次无序,还得交换for(int i=0;i<len-1-j;i++){ //次数if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] =arr[i+1];arr[i+1] =temp;sorted =false; //假定失败}System.out.println(Arrays.toString(arr));}if(sorted){ //减少趟数break;}}}}
0 0
- JAVA学习笔记39——冒泡排序:简单版+优化版+最终版
- # Java实现冒泡排序—详细解析优化版冒泡
- 学习笔记——冒泡排序的优化
- 优化版冒泡排序之java实现
- 优化版冒泡排序Java代码
- 简单排序——冒泡排序及其优化
- Java学习笔记排序算法-------冒泡排序
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 学习笔记——冒泡排序
- C学习笔记——冒泡排序
- Java优化冒泡排序
- 冒泡排序优化JAVA
- 冒泡排序优化JAVA
- java学习记录——冒泡排序
- C#版冒泡排序优化
- 冒泡排序——优化
- 冒泡排序与简单选择排序——Java实现
- 【学习笔记】java 实现冒泡排序
- unity3d shader之Julia集和Mandelbrot集绘制美丽图案 (二)
- spark 案例集群测试整理
- MyEclipse 2014 GA Windows版下载地址
- hdoj 1172 猜数字(暴力)
- Spring MVC url提交参数和获取参数
- JAVA学习笔记39——冒泡排序:简单版+优化版+最终版
- Android EditText获得焦点时边框颜色变深
- android shape的使用
- ActionBar
- Meta标签Robots之NOODP、NOYDIR
- url2
- new instance()与new
- js返回上一页并刷新代码整理
- 如何取消百度转码?