冒泡排序的原理说明:
第一趟:依次比较相邻的两个数,如果后面的数比前面的数小,则交换两个数的位置,一趟下来,所有关键字中最大的关键字会在最后,所以第二趟排序可以不考虑脚标最大位的关键字
第二趟:重复上述过程,但是第二趟中关键字总数比第一趟中少一个,因为所有关键字中最大的那个已经确定了
.
.
以此类推
.
.
public class 冒泡排序 {
public static void bubblesort(int a[])//优化
{
for(int i=0;i<a.length-1;i++)//记录共比较几轮
{
for(int j=0;j<a.length-i-1;j++)//每轮比较的过程
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
public static void maopao(int a[]) //bubblesort
{
for(int n=a.length;n>1;n--)
{
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
int m=a[i];
a[i]=a[j];
a[j]=m;
}
else
break;
}
}
}
}
public static void print(int a[])
{
for(int x=0;x<a.length;x++)
{
if(x!=a.length-1)
System.out.print(a[x]+",");
else
System.out.print(a[x]);
}
//return int;
System.out.println();
}
public static void main(String[] args)
{
int []a=new int[]{56,34,21,45,75,24,1,1,5};
print(a);
//int []b=new int[a.length];
maopao(a);
print(a);
bubblesort(a);
print(a);
}
}原文地址:http://caoyue.blog.51cto.com/9876038/1620643