隨筆-144  評(píng)論-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("共做比較次數(shù): "+icount);
            for(int i=0;i<iArray.length;i++)
            {
             System.out.print(" "+iArray[i]);
            }
           
           }
           public static void test2()  //稍微作了一下改進(jìn),加入一個(gè)布爾變量,當(dāng)順序已經(jīng)排好后,就不用做額外的比較了
           {
            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共做比較次數(shù): "+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) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 卢氏县| 海宁市| 黄大仙区| 琼结县| 大足县| 贵港市| 且末县| 小金县| 香港| 华容县| 通道| 永济市| 宁晋县| 新闻| 宁蒗| 绥德县| 旬邑县| 仁寿县| 佳木斯市| 平遥县| 营山县| 东阳市| 高雄县| 双柏县| 杭州市| 会泽县| 金山区| 甘孜县| 沭阳县| 东方市| 河津市| 高密市| 南华县| 尖扎县| 家居| 缙云县| 高唐县| 河池市| 贵州省| 合作市| 西吉县|