所谓冒泡就是每一次外循环结束后都可以把最值交换到数组的开头或结尾。此处是将最小的值冒泡到最前面。
//冒泡排序
public class Bubble_sort {
static void bubble_sort(int[] ar)
{
for(int i=0;i<ar.length;i++)
{
int flag=0;//假如检测到没有任何元素交换即证明已经是排好序了,不用再执行剩下循环。
for(int j=ar.length-1;j>i;j--)//已经确认最小值的不用检测,所以是j>i
{
if(ar[j]<ar[j-1])//最小的值冒泡到最前面
{
int tem=ar[j];
ar[j]=ar[j-1];
ar[j-1]=tem;
flag=1;
}
}
if(flag==0)
break;
}
return;
}
public static void main(String[] args) {
int[] arr=new int[10];
for(int i=0;i<arr.length;i++)
{
arr[i]=(int)(Math.random()*100+1);//随机产生数据
}
System.out.println("排序前:");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
//排序
bubble_sort(arr);
System.out.println("排序后:");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
排序前:
87 53 89 92 54 83 49 78 23 69
排序后:
23 49 53 54 69 78 83 87 89 92