相信看到这篇文章的你也在为此排序方法百思不得其解,小编也是一步一步过来的现在就手把手教会你。
首先什么是冒泡排序?
每一次循环结束之后,都会找到最大值(在最右边)
数组下标 0 1 2 3 4
假如:9,5,7,6,2
第一次循环:
5,9,7,6,2 (9>5,9和5交换位置(数组下标))
5,7,9,6,2 (9>7,9和7交换位置)
5,7,6,9,2(9>6,9和6交换位置)
5,7,6,2,9(9>2,9和2交换位置)
所有经过第一次循坏比较最大值=9,输出最大值。所有第二次循环比较只剩下5,7,6,2
第二次循环:
5,7,6,2(5<7,所以不交换位置,但是一定会比较!)
5,6,7,2(7>6,所以7和6交换位置)
5,6,2,7(7>2,所以7和2交换位置)
所有经过第二次循坏比较最大值=7,输出最大值。所有第二次循环比较只剩下5,6,2
第三次循环:
5,6,2(5<6,所以不交换位置)
5,2,6(6>2,所以6和2交换位置)
所有经过第三次循坏比较最大值=6,输出最大值。所有第二次循环比较只剩下5,2
所以最后排序结果为:2,5,6,7,9
最后是小编为大家实现的代码
package Array; /* 冒泡排序算法 */ public class BubbleSort { public static void main(String[] args) { int[] arr = {9,5,7,6,2}; int count = 0; for(int i = arr.length-1;i >0; i--){//654321 for (int j = 0;j<i;j++){//012345 count++; if (arr[j]>arr[j+1]) { int temp; temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } System.out.println("比较次数"+ count); for (int i = 0; i < arr.length;i++){ System.out.println(arr[i]); } } }