隨筆-144  評論-80  文章-1  trackbacks-0

          1>
          class maopao
          {

           static int count=0;
           static void bubbleSort(int[] a)
           {
            
            for (int j = a.length - 1; j > 0; j--) // outer loop (backward)
             for (int i = 0; i < j; i++) // inner loop (forward)
            { if (a[i] > a[i+1]) //Swap
              {
               a[i] = a[i] + a[i+1];
               a[i+1] = a[i] - a[i+1];
               a[i] = a[i] - a[i+1];
           
              }
              count++;
            }


           }
           public static  void main(String[] args)
           {
            int[] a = new int[]{9,8,5,4,2,0};
            //int[] a = new int[]{9,8,7,6,5,4,3,2,1,0,11};
            bubbleSort(a);
            System.out.println("count&&&&"+count);
            for (int i=0; i < a.length-1; i++)
            {
           
             System.out.print(a[i]+", ");
            }
           }
          }



          2>

          class  maopao4
          {
           
           public static void test1()  //最普通的冒泡算法,需要比較(n-1)*(n-1)次
           {
            int[] iArray={9,8,5,4,2,0};
            int k=0;
            int icount=0;
            for(int j=0;j<iArray.length-1;j++)
            {
             for(int i=0;i<iArray.length-1;i++)
             {
              if(iArray[i]>iArray[i+1])
              {
               k=iArray[i];
               iArray[i]=iArray[i+1];
               iArray[i+1]=k;
              }
              icount++;
             }
            }

            System.out.println("共做比較次數: "+icount);
            for(int i=0;i<iArray.length;i++)
            {
             System.out.print(" "+iArray[i]);
            }
           
           }
           public static void test2()  //稍微作了一下改進,加入一個布爾變量,當順序已經排好后,就不用做額外的比較了
           {
            int[] iArray={9,8,5,4,2,0};
            int k=0;
            int icount=0;
            boolean b=false;
            for(int j=0;j<iArray.length-1;j++)
            {
             b=false;
             for(int i=0;i<iArray.length-1;i++)
             {
              if(iArray[i]>iArray[i+1])
              {
               k=iArray[i];
               iArray[i]=iArray[i+1];
               iArray[i+1]=k;
               b=true;
              }
              icount++;
             }
             if(!b) break;
            }

            System.out.println("\r\n\r\n共做比較次數: "+icount);
            for(int i=0;i<iArray.length;i++)
            {
             System.out.print(" "+iArray[i]);
            }
           
           }
           public static void main(String[] args)
           {
            test1();
            test2();
           }
          }

          posted on 2005-03-30 18:15 小力力力 閱讀(552) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 冕宁县| 迁西县| 五大连池市| 固安县| 周至县| 漠河县| 天长市| 新巴尔虎左旗| 嘉善县| 云林县| 电白县| 常宁市| 阜平县| 富顺县| 专栏| 株洲县| 宁蒗| 东宁县| 六安市| 泗水县| 奉节县| 越西县| 蒙自县| 桓仁| 广平县| 乌兰察布市| 桦川县| 乌拉特中旗| 长顺县| 漳浦县| 凤阳县| 巴林左旗| 襄汾县| 哈巴河县| 台中县| 高安市| 巴马| 临颍县| 吉林省| 峨眉山市| 新干县|