public class test1 {
}
第一趟循环比较之后的结果
10
2
冒泡排序的过程很简单,就是将第一个记录的关键字和第二个记录的关键字进行比较,如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。比完一趟,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。
所以代码可以解释为:要最终排序必须循环arr.length次,而每一次循环都是两两比较,好比第一次循环(此时i=0)10和2比较,10比2大交换位置;然后10再跟34比较,34大,交换位置;然后34再跟5比较,34大,交换位置;然后34再跟12比较,34大,交换位置;然后34再跟8比较,还是34大,交换位置;最后34跟43比较,43大,不交换位置,所以最后第一次循环结束,接下来就是第二趟循环,第二趟循环就剩下arr.length-1-i(此时的i就等于1,所以就剩下5个数的循环),这就是为什么arr.length的外层for循环里要嵌套arr.length-i-1次循环.