java语言:详细讲解如何实现冒泡排序
1、实现构思:n个数进行从小到大排序,外循环第一次循环控制参加比较的次数为n-1,内循环找出n个数的最大值,移放在最后位置上;以后每次循环中其循环次数和参加比较的数依次减1.若n=0,即对6个数进行排序,排序过程序如下面的描述。
2、假设数组a中存放辘腋粪梯{4,8,6,7,9,1},在第一趟排序中:第1次 a[0]和a[1]比软,即3和7比较,不交换 4 8 6 7 9 1;第2次 a[1柯计瓤绘]和a[2]比软,即7和5比较,交换 4 6 8 7 9 1;第3次 a[2]和a[3]比软,即7和6比较,交换 4 6 8 7 9 1;第1次 a[3]和a[4]比软,即7和8比较,不交换 4 6 8 7 9 1;第1次 a[4]和a[5]比软,即3和7比较,交换 4 6 8 7 9 1;第一趟排序中,6个数比较了5次,把6个数中的最大值数8排在最后。数组中数据为:{4,6,7,8,1,9}
3、第二趟排序:第1次 a[0]和a[1]比软,即3和5比较,不交换 4 6 7 8 1 9诋危族枧;第2次 a[1]和a[2]比软,即5和6比较,不交换 4 鲂番黟谊6 7 8 1 9;第3次 a[2]和a[3]比软,即6和7比较,不交换 4 6 7 8 1 9;第1次 a[3]和a[4]比软,即7和0比较,交换 4 6 7 1 8 9;在第二趟排序中,最大数8不用参加比较,其余的5个数比较了4次,把期中的最大数7排在最后,排出{8,9};以此类推:第三趟比较3次,排出{7,8,9}第四趟比较2次,排出{6,7,8,9}第五趟比较1次,排出{4,6,7,8,9}最后还剩下1个数1,不需要再比,得到排序结果:{1,4,6,7,8,9}
4、打开Eclipse,新建一个类,选择好源文件的保存位置和所要存放的包。
5、声明数组arr并存放6个元素.
6、利用for循环的嵌套解决问题。由之前的算法分析,可以看出对6个数据的数组升序排列只需进行5趟排序。所以外层循环控制排序趟数。
7、内层循环控制每一趟排序的次数,并找出最大的数,放在最后位置(即沉底)。
8、下面是源代码,方便大家参寿伊趾杏考。import java.util.Arrays;public class aadadasda {public static void mai荏鱿胫协n(String[] args){int[] arr={4,8,6,7,9,1};System.out.println("排序前数组为:");for(int num:arr){System.out.print(num+" ");}System.out.println("");System.out.println("-----------------冒泡排序开始----------------");for(int i=0;i<arr.length-1;i++){ //外层循环控制排序趟数for(int j=0;j<arr.length-1-i;j++){ //内层循环控制每一趟排序多少次if(arr[j]>arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}System.out.println("-----------------冒泡排序结束---------------");System.out.println("排序后的数组为:");System.out.println(Arrays.toString(arr));}}
9、打印出来的结果如图。