/*
* 冒泡排序(Bubble Sort)。
* 在冒泡排序算法中,需要重复的走访要排序的数列,一次比较两个元素,
* 如果它们的大小顺序错误就把它们交换过来。
本案例要求使用冒泡排序算法实现对数组的排序。
有一个长度为 10的整型数组,
使用冒泡排序算法将数组按照升序排列,并输出排序的过程以及结果。
* */
/*
* 分析:
* 第一步:创建一个长度为10的数组
* 以后这里可以引申为用户输入一个数字代表创建数组的长度
* 第二步:输出这个数组
* 第三步:冒泡排序
* 假设一个新数组为10,9,4,18
* 第一轮第一个元素开始冒泡,需要比较3次得到最大值—–>0 3
* 每次冒泡都是从第一个元素开始
* 第二轮第一个元素开始冒泡,需要比较2次得到最大值—–>1 2
* 第三轮第一个元素开始冒泡,需要比较1次得到最大值—–>2 1
* 第四轮无需再做比较
* 轮数i为length-1 外循环for
* 比较次数为length-1-i 内循环for
* 第四步:输出新数组
* */
package day05;
public class BubbleSort {
/**
* @param args
*/
public static voidmain(String[] args) {
// TODO Auto-generated methodstub
//第一步:创建长度为10的新数组
int[] arr = new int[10];
//第二步:给新数组随机赋值并输出
System.out.println(“新创建数组为:”);
for(inti=0;i<arr.length;i ){
arr[i]=(int)(Math.random()*100);//元素大小在0-99之间
System.out.print(arr[i] “”);
}
System.out.println();
//第三步:冒泡排序
for(inti=0;i<arr.length-1;i ){
for(intj=0;j<arr.length-1-i;j ){
int temp;
if(arr[j]>arr[j 1]){//注意这里比较的下标是j不是i,外层走一次内层走所有次
temp=arr[j];
arr[j]=arr[j 1];
arr[j 1]=temp;
}
}
}
//第四步:输出新数组
System.out.println(“冒泡排序后的新数组是:”);
for(inti=0;i<arr.length;i ){
System.out.print(arr[i] “”);
}
}
}