算法复习之——冒泡排序

2018-10-25  本文已影响0人  丶你别遗憾

原理分析

冒泡排序原理简单来说就是依次将相邻两个数作比较,如果前一个数大于后一个数就交换位置,这样第一轮下来,就能保证最后一个数是所有数中最大的,这个数就不必参加下一轮的比较;然后第二轮过后,倒数第二个数就变成了第二大的,同样也不参与下一轮的比较...以此类推,这样每次把大数都放到后面,就像冒泡一样

举例说明

举个例子,我们按冒泡排序原理比较这几个数:2,3,5,6,1

过程为

第1轮比较后:2 3 5 1 6

第2轮比较后:2 3 1 5 6

第3轮比较后:2 1 3 5 6

第4轮比较后:1 2 3 5 6

程序实现

程序实现也很简单,由上面举例可得知,n个数排序,共需进行n-1轮排序,第i轮需要比较的次数为n-i次,这样我们就可以用循环嵌套来实现,外层控制循环几轮,内层控制比较次数,程序如下

    for(int i=0;i<numbers.length-1;i++) {
        for(int j=0;j<numbers.length-1-i;j++) { //-1为了防止溢出
            if(numbers[j] > numbers[j+1]) {
                int temp = numbers[j];
                numbers[j] = numbers[j+1];
                numbers[j+1] = temp;
            }
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读