本帖最后由 france723 于 2017-4-29 21:09 编辑
所有冒泡程序都大同小异,在仔细解释一下为什么要两个循环。比如有这么一个数组"11,13,5,18,7", 我们从小到大排列。 首先是内循环,两个两个的逐一比较,把较大的放后面,第一组比较“11”和“13”,顺序不用变。第二组比较“13”和“5”,顺序改变成“5,13”,此时数组顺序是"11,5,13,18,7"。以此类推,最后数组顺序是“11,5,13,7,18”。
内循环把最大的“18”放在了最后面,但是前面的元素由于是两两比较,所以并没有准确的按照从小到大排列。这时候我们需要把除了最大的元素“18”(放在了最后面)的剩余元素,再运行一次内循环,找出剩余元素最大的,然后放在最后面。以此类推,直到达到要求。
这个过程要把已经找出之前最大的元素排除(这就是你问的为什么8-i),所以要运用一个外循环来控制内循环每次的循环范围。
|