依次比较相邻的两个数,将小的数放在前移,大的数放在后移。
* 第一次:首先比较数组中下标为0的对应的数和下标为1的对应的数,大的数往后移,小的数前移,
* 如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一次结束,将最大的数放到了最后。
* 第二次:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),
* 将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),
* 第二次结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
* 如此下去,重复以上过程,直至最终完成排序。
用嵌套循环实现,外循环变量设为i,内循环变量设为j。假如有n个数需要进行排序,则外循环重复n-1次,内循环依次重复n-1,n-2,...,1次。
*每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,n-1,对于每一个i,j的值依次为0,1,2,...n-i 。
public static void main(String[] args) {
int[] num=new int[] {5,48,2,6,9,4,7};
for (int i = 0; i < num.length-1; i++) {
for (int j = 0; j < num.length-1-i; j++) {
if (num[j]>num[j+1]) {
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for (int i = 0; i < num.length; i++) {
System.out.print(num[i]+" ");
}
}
}