隨筆-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("共做比較次數(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 小力力力 閱讀(562) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 东源县| 文登市| 襄城县| 独山县| 遂溪县| 呼伦贝尔市| 时尚| 梓潼县| 兰考县| 岳池县| 孝义市| 登封市| 綦江县| 教育| 和田市| 平山县| 祁连县| 瓦房店市| 金川县| 上思县| 汝州市| 五大连池市| 南阳市| 屏边| 祥云县| 衡东县| 冀州市| 昌都县| 休宁县| 满城县| 鹿邑县| 保山市| 慈溪市| 米泉市| 奉新县| 吉木萨尔县| 夹江县| 德钦县| 云龙县| 镇雄县| 梁平县|