zoukankan      html  css  js  c++  java
  • JAVA实现冒泡排序

    闲来无事,自己想起上家公司的笔试题就会考冒泡排序,so,自己就试试写了下,分享下了。

    实现:

     1 package myTempTest;
     2 
     3 public class maopao {
     4 
     5     public static void main(String[] args) {
     6         
     7         //定义一个无序的数字型数字
     8         int[] numList = {5,4,3,2,1,10,9,8,7,6,21,32,1,322,12321,33,2111,22,22,123,2131};
     9 
    10         //最外面的循环用于从数组的第一值依次和后面的值做比较,一直循环到数组的最后一个数字
    11         for (int i = 0 ; i < numList.length ; i ++)
    12         {
    13             System.out.print("第"+i+"次循环:");//换行
    14             //内循环 用于判断数组的第 i 个位置的数字 和 起后面的第j个数字的大小比较和位置交换用的。
    15             for(int j = numList.length-1 ; j > i ; j -- )
    16             {
    17                 if(numList[j]<numList[i])
    18                 {
    19                     int temp = numList[i];
    20                     numList[i] = numList[j];
    21                     numList[j] = temp;
    22                     
    23                 }
    24             }
    25             for(int k = 0 ; k < numList.length ; k ++)
    26             {
    27                 System.out.print(numList[k] +  " ");//输出本次循环之后的排序
    28             }
    29             System.out.println();
    30         }
    31     }
    32 
    33 }

    输出结果:

     1 第0次循环:1 4 3 2 1 10 9 8 7 6 21 32 5 322 12321 33 2111 22 22 123 2131 
     2 第1次循环:1 1 3 2 4 10 9 8 7 6 21 32 5 322 12321 33 2111 22 22 123 2131 
     3 第2次循环:1 1 2 3 4 10 9 8 7 6 21 32 5 322 12321 33 2111 22 22 123 2131 
     4 第3次循环:1 1 2 3 4 10 9 8 7 6 21 32 5 322 12321 33 2111 22 22 123 2131 
     5 第4次循环:1 1 2 3 4 10 9 8 7 6 21 32 5 322 12321 33 2111 22 22 123 2131 
     6 第5次循环:1 1 2 3 4 5 9 8 7 6 21 32 10 322 12321 33 2111 22 22 123 2131 
     7 第6次循环:1 1 2 3 4 5 6 8 7 9 21 32 10 322 12321 33 2111 22 22 123 2131 
     8 第7次循环:1 1 2 3 4 5 6 7 8 9 21 32 10 322 12321 33 2111 22 22 123 2131 
     9 第8次循环:1 1 2 3 4 5 6 7 8 9 21 32 10 322 12321 33 2111 22 22 123 2131 
    10 第9次循环:1 1 2 3 4 5 6 7 8 9 21 32 10 322 12321 33 2111 22 22 123 2131 
    11 第10次循环:1 1 2 3 4 5 6 7 8 9 10 32 21 322 12321 33 2111 22 22 123 2131 
    12 第11次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 322 12321 33 2111 22 32 123 2131 
    13 第12次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 322 12321 33 2111 22 32 123 2131 
    14 第13次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 12321 33 2111 32 123 322 2131 
    15 第14次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 2111 123 322 2131 12321 
    16 第15次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 2111 123 322 2131 12321 
    17 第16次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 123 322 2111 2131 12321 
    18 第17次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 123 322 2111 2131 12321 
    19 第18次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 123 322 2111 2131 12321 
    20 第19次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 123 322 2111 2131 12321 
    21 第20次循环:1 1 2 3 4 5 6 7 8 9 10 21 22 22 32 33 123 322 2111 2131 12321 

    原理:

        冒泡排序原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子。

         或者可以这样描述冒泡排序:就是将第一个记录的关键字和第二个记录的关键字进行比较, 如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。比完一趟,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。  

      稳定,时间复杂度 O(n^2)

    图解:

  • 相关阅读:
    提升ASP.NET性能
    人性的弱点
    墨菲定律
    沟通
    网站
    程序员思维模式
    CSS
    HTML
    路由和数据传递(04)
    Sql Server中查看所有数据库,表名,字段名以及字段类型
  • 原文地址:https://www.cnblogs.com/xiayahui/p/4551016.html
Copyright © 2011-2022 走看看