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;
}
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号