冒泡排序:从小到大
public class arrDome {
public static void main(String[] args) {
int[] num = {12,654,2,867,11,56,88,601};
/**
* 数组八位故比七轮
*/
// outer
for(int i=0;i<num.length-1;i++)
{
//inner
for(int j=0;j<num.length-1-i;j++)//j<num.length-1也行
{
if(num[j]>num[j+1])
{
int temp = num[j+1];
num[j+1] = num[j];
num[j] = temp;
}
}
}
for(int i=0;i<num.length;i++)
System.out.print(num[i]+" ");
}
}
上述代码步骤:
1、自定义一个int型数组,数组内部元素随机摆放。
2、利用双层循环进行排序。
第一层:利用变量i进行轮数比,由于num数组中有8位,故只用比7轮。第一次比较7次,第二次比较6次,第三次比较5次,以此类推 第七次比较一次。
第二层:利用变量j开始比较num数组中的元素,看到代码可能会有疑问:为什么j<num.length-1-i与j<num.length-1都可以。j<num.length-1-i在数组中元素比较中编译运行的速度要高于j<num.length-1;因为第一轮过后到第二轮j<num.length-1-i就意味着inner(内层循环)只需要运行6次,以此类推,第七次只用运行1次;而对于j<num.length-1而言,无论第几轮inner(内层循环)都会运行7次。
3、inner每次循环结束后都会借变量temp将较大的值赋给新的num数组。
4、循环遍历num数组中的元素
运行结果:
2 11 12 56 88 601 654 867