排序在日常生活中是非常常见的,比如平时我们考完试以后老师会根据我们的分数由高到低进行排序,以便了解我们的学习情况;在上体育课的时候老师会根据同学们的身高由低到高或者由高到低的进行排序,这样更方便教学,可见排序在生活中是非常普遍而且实用的。对于我们来说,排序并不困难,但是对于计算机程序来说,排序并不像我们人一样。
冒泡排序过程
你可以把计算机程序想象成一个高度近视的人(至于近视到什么程度,大概就是一队人站在你面前,但是你只能看到你面前的两个人的那种程度),因为只能看到两个人的关系,所以决定了你只能依次比较相邻两个人的高度,按需求交换两个人的位置。假如你要对篮球队员由低到高进行排队,从队伍的最左边出发,依次比较你面前的两个队员的身高,如若右边的队员的身高低于左边队员的身高,那么就交换两个队员的位置,否则不交换,当你第一次排到队伍左右边的时候,你会发现,队伍中最高的一个人已经站在了队伍的最右边的位置,接下来你又回到了队伍的最左边,重复刚才的过程,最后队员就会按照从低到高的顺序站好了。现在我们用7个数字代替篮球运动员,由小到大进行排序,过程如下图所示,红色代表此排序得到的最大值。
代码:
package demo;
public class BobbleSortApp{
public static void main(String[] args) {
int[] numbers=new int[]{
2,8,5,9,10,6,4};
for(int i=numbers.length-1;i>1;i--)
{
for(int j=0;j<i;j++)
{
if(numbers[j]>numbers[j+1])
{
int temp=numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}
}
}
System.out.println("从小到大排序后的结果是:");
for(int i=0;i<numbers.length;i++)
System.out.print(numbers[i]+" ");
}
}