摘要: 关于冒泡排序的思路和算法
所谓冒泡排序就是给定一组数,针对这组数进行的一种排序。具体的过程是,从第一个数开始,依次与后面的数进行比较,若 前一个数比后一个数大,则交换位置,再与第三个数进行比较,最后出现在结尾的就是本轮最大数字,再次重复直到排除顺序,这是选出最大来进行排列,也可以按选出最小来排,原理是一样的。
比如:
用第一个数依次与后面的数比较,比对方大,就交换位置,比对方小就不动,并放弃当前数字,用对方来与后面的数字继续比较,为的就是一次又一次的选出最大的数字。
比较过程大致:
1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。
3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。
4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。
1 具体实现代码: 2 public static void main(args[]){ 3 for(int i=0;i<arr.length;i++){//外层循环控制轮数 4 for(int j=0;i<arr.length-1-i;j++){//内层循环控制比较次数 5 if(arr[j]>arr[j+1]){ 6 int temp=arr[j]; 7 arr[j]=arr[j+1]; 8 arr[j+1]=temp; 9 } 10 } 11 } 12 }