Java_冒泡排序_原理及优化
Posted 爱华顿g
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java_冒泡排序_原理及优化相关的知识,希望对你有一定的参考价值。
冒泡排序及其优化
一.原理及优化原理
1.原理讲解
冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较,以此类推,执行完为一个趟,趟数等于比较的个数减一.
2.冒泡排序原理图示:(以98765序列为例,排序结果从小到大)
3.冒泡排序优化
优化版:每一次减少一次循环(即红色部分不需要在进行比较)
4.冒泡排序最终版
最终版:每一趟减少一次循环(删除线不需要再执行)
二.实现代码
1.冒泡排序实现主要代码
public static void main(String[] args) { int []arr={9,8,7,6,5}; int len=arr.length; for (int i=0;i<len-1;i++) { for (int j=0;j<len-1;j++) { if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.println(Arrays.toString(arr)); }
2.冒泡排序优化代码
public static void main(String[] args) { int []arr={9,8,7,6,5,10}; int len=arr.length; for (int i=0;i<len-1;i++) { for (int j=0;j<len-1-i;j++) { if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } System.out.println(Arrays.toString(arr)); }
3.冒泡排序最终代码
public static void main(String[] args) { int []arr={9,8,7,6,5}; int len=arr.length; for (int i=0;i<len-1;i++) { System.out.println("第"+(i+1)+"趟"); //增加判断位 boolean flag=true; for (int j=0;j<len-1-i;j++) { System.out.println("第"+(j+1)+"次"); if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; flag=false; } System.out.println(Arrays.toString(arr)); } //如果上面没有执行直接退出 if(flag){ break; } } System.out.println(Arrays.toString(arr)); }
三.注意事项
1.多思考
以上是关于Java_冒泡排序_原理及优化的主要内容,如果未能解决你的问题,请参考以下文章