public static void MaoPao(int a[])
{
int t;
for(int i = 0; i < a.length - 1; i++)
{
for(int j = 0; j < a.length - 1 - i; j++)
{
if(a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}
冒泡排序是两个两个数相比较。
例如有数列:4,9,5,1
首先是是先比较4和9,发现4小于9,不用改位置,所以直接j++;
然后比较9和5,发现9大于5,交换这两个数的位置,然后在j++;数列变成4,5,9,1
同理,1和9换位置;数列:4,5,1,9;这样重复,最后变成1,4,5,9。
为什么外循环是a.length() - 1,如上面数列,1在最后,显然1也是数列中最小的数,它要移到第一个位置是往前移动3个单位。