冒泡排序

2018-01-09  本文已影响0人  储僖僧僳儒

        在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。

       即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

              第一次比较排序的结果:会把其中最大的数据排到最大的索引处

             第二次比较排序后的结果:因为第一次已经把最大的一个数据放到了最大的索引的地方,所以这次要进行比较的数据比数组里面的元素的数据个数-1个,而第二大的数据也会排到第二大的索引处

           第三次比较排序的结果:跟第二次差不多,只是这次要进行比较的数据比数组里面的元素的数据个数还少了2个,

             第四次:少3个...

     综上所述,要使数组里面的数据按照从小到大排序,总的比较的次数会比数组的长度-1次,而随着比较的次数的增加,每次要进行比较的数据依次减少。

public class Demo {

       public static void main(String[] args) {

           int number[]={49,38,65,97,76,13,27,14,10};

             for(int i=0;i<number.length-1-i; j++) {

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

                     int tmp = number[j];

                    number[j] = number[j+1];

                     number[j + 1] = tmp;

                 }

         }

       for (int j = 0; j < number.length; j++) {

               System.out.print(number[j] +"\t");

       }

            System.out.println("排序"+(i+1)+"次后的结果");

         }

    }

 }

上一篇下一篇

猜你喜欢

热点阅读