Java之冒泡排序(Bubble Sort)

2019-01-24  本文已影响0人  小小弓长张

原理是比较相邻的两个元素,将值大的元素交换到右端。

思路:依次比较相邻的两个数,将小的数放在左面,大数放在右面。

优点:每进行一次排序,排序次数就会少一次,因为每一次排序都会找出一个最大值。

第一次:比较第一个和第二个数,将小数放在左面,大数放在右面,然后比较第二个和第三个数,将小数放在左面,大数放在右面,依次类推,直到比较到最后两个数,第一次排序完成。

第一次排序完成后,最后一个数肯定是数组中最大的数,因此第二次排序的时候,最后一个数不参与比较。

第二次排序完成后,倒数第二的数肯定是数组中倒数第二大的数,因此第三次排序的时候,最后两个数不参与比较。

以此类推,每一次的排序次数减一,直到排序完成。

结论:N个数字要进行排序,总共要进行N-1次排序,每一趟的排序次数N-1次,所以使用双重循环语句,外层循环控制循环多少次,内层循环控制每一趟的循环次数。列:

for(int i = 0 ;i<array.length-1 ; i++){         //外层循环控制循环的次数

    for(int j = 0 ; j<array.length-1-i ; j++){         //内层循环控制每一次排序多少次

        //将排序好的数交换位置

          if(array[j]>array[j+1]) {

                    int temp = array[j];

                    array[j] = array[j+1];

                    array[j+1] = temp;

            }

       }

}

上一篇下一篇

猜你喜欢

热点阅读