Java冒泡排序

public class BubbleSort{
public static void main(String[] args){

//冒泡排序
/*
1.一共n个元素

2.一共进行n-1轮排序,可以看成外层循环

3.每1轮循环可以确定1个数的位置,比如第1轮排序确定最大数,
第二轮确定第2大的数位置,以此类推

4.当进行比较时,如果前面的数大于后面的数,就交换

5.每轮比较的次数在减少(n-1)->(n-2)->(n-3)->....->1

*/

int temp = 0;
int arr[]={24,45,84,12,15};
for(int i = 0;i<arr.length-1 ;i++){//循环n-1次

for(int j = 0 ; j< arr.length-i-1 ; j++){//初始n-1次排序,每次循环后递减一次排序
if(arr[j]>arr[j+1])
{
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
for(int j = 0 ; j< arr.length ; j++){
System.out.print(arr[j]+"\t");
}
}
}

//优化一下,当冒牌排序在某次已经达到需要的效果终止排序
int temp = 0;
int arr[]={1,2,3,5,4};
for(int i = 0;i<arr.length-1 ;i++){//循环n-1次
int count = 0;//用来标记是否提前终止循环
for(int j = 0 ; j< arr.length-i-1 ; j++){//初始n-1次排序,每次循环后递减一次排序
if(arr[j]>arr[j+1])
{
count++;
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
System.out.println("*****第"+(i+1)+"轮排序*****");
for(int k = 0 ; k< arr.length ; k++){

System.out.print(arr[k]+"\t");

}
System.out.print("\n");
if(count == 0){
break;
}
count = 0;

}

posted @   世纪sj  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示