冒泡排序

昨天面试,碰到的面试题,很久不写了,没写出来,挺糗的!

冒泡排序是所有排序中相对简单的一种排序,所以对于新手来说,掌握一种排序方法会给你意想不到的惊喜。

下面开始正题,冒泡排序的基本思想就是,两两相邻比较,如果反序则交换位置,知道没有反序为止。

下面是代码,笔者把关键代码做了注释,希望对大家有所帮助。

package bubble;


public class Bubble {
public static void main(String [] args){
int array[]={12,45,16,798,45,23,49,78,94,19};
System.out.println("原始数组为:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
/*
* 下面的两层for循环是关键代码
* 内层的for循环是用来将数组中相邻的两个元素进行比较,
* 符合if条件的就交换位置,不符合,就不执行代码块
* 其中array[j]<array[j+1]代表当前元素和当前元素的后一个元素比较大小

* 而外层循环约束着排序的轮数,即总共需要多少轮的排序
* 一轮排序过后,通过i++逐一排除已经排序好的数组,进行下一轮的排序
*/
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1-i;j++){
if(array[j]<array[j+1]){
int temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
//打印每次排序的结果,其中的i+1是因为i是第一轮的数组下标,加上1才是排序的轮数
System.out.println("\n"+ "第"+(i+1)+"次的排序结果是:");
for( int m=0 ;m<array.length;m++){

System.out.print(array[m]+" ");
}
}
System.out.println("\n"+"排序后的数组为:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}

下面是运行的结果:

原始数组为:
12 45 16 798 45 23 49 78 94 19 
第1次的排序结果是:
45 16 798 45 23 49 78 94 19 12 
第2次的排序结果是:
45 798 45 23 49 78 94 19 16 12 
第3次的排序结果是:
798 45 45 49 78 94 23 19 16 12 
第4次的排序结果是:
798 45 49 78 94 45 23 19 16 12 
第5次的排序结果是:
798 49 78 94 45 45 23 19 16 12 
第6次的排序结果是:
798 78 94 49 45 45 23 19 16 12 
第7次的排序结果是:
798 94 78 49 45 45 23 19 16 12 
第8次的排序结果是:
798 94 78 49 45 45 23 19 16 12 
第9次的排序结果是:
798 94 78 49 45 45 23 19 16 12 
第10次的排序结果是:
798 94 78 49 45 45 23 19 16 12 
排序后的数组为:
798 94 78 49 45 45 23 19 16 12 


建议初学的朋友们一定一定要自己至少敲三遍,程序员最怕的就是眼高手低!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值