<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 71  文章 - 15  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    因為口渴,上帝創造了水;
    因為黑暗,上帝創造了火;
    因為我需要朋友,所以上帝讓你來到我身邊
    Click for Shaanxi xi'an, Shaanxi Forecast
    ╱◥█◣
      |田|田|
    ╬╬╬╬╬╬╬╬╬╬╬
    If only I have such a house!
    〖總在爬山 所以艱辛〗
    Email:myesjoy@yahoo.com.cn
    NickName:yesjoy
    MSN:myesjoy@hotmail.com
    QQ:150230516

    〖總在尋夢 所以苦痛〗

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    Hibernate在線

    Java友情

    Java認證

    linux經典

    OA系統

    Spring在線

    Structs在線

    專家專欄

    企業信息化

    大型設備共享系統

    工作流

    工作流產品

    網上購書

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    /**
    *快速排序算法的應用
    快速排序算法比冒泡排序算法的效率更高,它每次都要確定第一個下標數字的位置,流程圖如下所示:(P152)
    本例應用到的知識如下:
    (1)。數組的創建
    (2)。數組的訪問
    (3)。快速排序算法
    */
    public class  QuickSort
    {
     
    /**主方法*/
     
    public static void main(String[] args) 
     {
      
    int[] nums = {27,8,57,9,23,41,65,19,0,1,2,4,5};//聲明一維數組并初始化
      System.out.println("該數組的長度為:" + nums.length);
      System.out.println(
    "*************************************************");
      quickSort(nums,
    0,nums.length-1);//應用快速排序算法
      System.out.println("*************************************************");
      System.out.println(
    "已經走出quickSort方法,并且下面在主程序中顯示最后結果");
      
    for(int i = 0; i < nums.length; i++)//顯示排序后的數組
      {
       System.out.print(nums[i] 
    + ",");
      }
     }

     
    /**快速排序算法*/
     
    public static void quickSort(int[] a,int low0, int hig0)//實參為quickSort(nums, 0, 12)
     {
      
    int low=low0;//low0 = 0
      int hig=hig0;//hig0 = 12
      
      
    if(low >= hig)//條件成立時表示已經排序完畢
       return;
      
    //transfer是確定指針方向的邏輯變量
      boolean transfer = true;//默認是下標指針從后向前移動
      
      
    while(low != hig)
      {
       
    if(a[low] > a[hig])
       {
        
    //交換數字
        int temp = a[low];
        a[low] 
    = a[hig];
        a[hig] 
    = temp;
        
    //決定下標移動,還是上標移動
        transfer = (transfer == true? false : true;//這里第一次求的transfer為false
       }
       
    //將指針向前或者后移動
       if(transfer)
       {hig
    --;}//指針向前移動
       else
       {low
    ++;}//指針向后移動   
       
    //顯示每一次指針移動的數組數字的變化
       for(int i = 0; i < a.length; i++)
       {
        System.out.print(a[i] 
    + ",");
       }
       System.out.print(transfer 
    + ",");
       
    //此時low = 1, hig = 12
       System.out.println(" (low,hig) =" + "(" + low + "," + hig + ")");          
      }
    //退出while循環時low == high == 9
      
      
    //將數組分開兩半重新調用quickSort()各自快速排序,確定每個數字的正確位置
      low--;//low == 8
      hig++;// hig == 10
      quickSort(a, low0, low);//quickSort(a, 0, 8)
      quickSort(a, hig, hig0);//quickSort(a, 10,12)      
     }
    }
    //運行結果如下:
    E:\java\ProgramJava\35lessons\lesson8>javac QuickSort.java
    E:\java\ProgramJava\35lessons\lesson8>java QuickSort
    該數組的長度為:13
    *************************************************
    5,8,57,9,23,41,65,19,0,1,2,4,27,false, (low,hig) =(1,12)
    5,8,57,9,23,41,65,19,0,1,2,4,27,false, (low,hig) =(2,12)
    5,8,27,9,23,41,65,19,0,1,2,4,57,true, (low,hig) =(2,11)
    5,8,4,9,23,41,65,19,0,1,2,27,57,false, (low,hig) =(3,11)
    5,8,4,9,23,41,65,19,0,1,2,27,57,false, (low,hig) =(4,11)
    5,8,4,9,23,41,65,19,0,1,2,27,57,false, (low,hig) =(5,11)
    5,8,4,9,23,27,65,19,0,1,2,41,57,true, (low,hig) =(5,10)
    5,8,4,9,23,2,65,19,0,1,27,41,57,false, (low,hig) =(6,10)
    5,8,4,9,23,2,27,19,0,1,65,41,57,true, (low,hig) =(6,9)
    5,8,4,9,23,2,1,19,0,27,65,41,57,false, (low,hig) =(7,9)
    5,8,4,9,23,2,1,19,0,27,65,41,57,false, (low,hig) =(8,9)
    5,8,4,9,23,2,1,19,0,27,65,41,57,false, (low,hig) =(9,9)
    0,8,4,9,23,2,1,19,5,27,65,41,57,false, (low,hig) =(1,8)
    0,5,4,9,23,2,1,19,8,27,65,41,57,true, (low,hig) =(1,7)
    0,5,4,9,23,2,1,19,8,27,65,41,57,true, (low,hig) =(1,6)
    0,1,4,9,23,2,5,19,8,27,65,41,57,false, (low,hig) =(2,6)
    0,1,4,9,23,2,5,19,8,27,65,41,57,false, (low,hig) =(3,6)
    0,1,4,5,23,2,9,19,8,27,65,41,57,true, (low,hig) =(3,5)
    0,1,4,2,23,5,9,19,8,27,65,41,57,false, (low,hig) =(4,5)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(4,4)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(0,2)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(0,1)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(0,0)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(1,2)
    0,1,4,2,5,23,9,19,8,27,65,41,57,true, (low,hig) =(1,1)
    0,1,2,4,5,23,9,19,8,27,65,41,57,false, (low,hig) =(3,3)
    0,1,2,4,5,8,9,19,23,27,65,41,57,false, (low,hig) =(6,8)
    0,1,2,4,5,8,9,19,23,27,65,41,57,false, (low,hig) =(7,8)
    0,1,2,4,5,8,9,19,23,27,65,41,57,false, (low,hig) =(8,8)
    0,1,2,4,5,8,9,19,23,27,65,41,57,true, (low,hig) =(5,6)
    0,1,2,4,5,8,9,19,23,27,65,41,57,true, (low,hig) =(5,5)
    0,1,2,4,5,8,9,19,23,27,65,41,57,true, (low,hig) =(6,6)
    0,1,2,4,5,8,9,19,23,27,57,41,65,false, (low,hig) =(11,12)
    0,1,2,4,5,8,9,19,23,27,57,41,65,false, (low,hig) =(12,12)
    0,1,2,4,5,8,9,19,23,27,41,57,65,false, (low,hig) =(11,11)
    *************************************************
    已經走出quickSort方法,并且下面在主程序中顯示最后結果
    0,1,2,4,5,8,9,19,23,27,41,57,65,
    posted on 2006-02-04 19:19 ★yesjoy★ 閱讀(1722) 評論(0)  編輯  收藏 所屬分類: 算法總結
    主站蜘蛛池模板: 特黄特色的大片观看免费视频| 国产亚洲精品美女久久久| 久久经典免费视频| 亚洲毛片免费视频| 免费人妻无码不卡中文字幕系| 野花香在线视频免费观看大全| 男女一进一出抽搐免费视频| 国产精品午夜免费观看网站| 一级白嫩美女毛片免费| 一级日本高清视频免费观看| 污污的视频在线免费观看| 免费一级毛suv好看的国产网站| 国产精品亚洲一区二区无码 | 日韩精品成人无码专区免费| 久草免费在线观看视频| 91网站免费观看| 人妻视频一区二区三区免费| 成年人免费网站在线观看| 免费的一级黄色片| 免费欧洲毛片A级视频无风险| 免费成人黄色大片| 国产成人精品日本亚洲专区61| 久久久久亚洲AV无码专区桃色| 亚洲一区AV无码少妇电影☆| 久久精品国产亚洲AV网站| 在线观看亚洲人成网站| 中国亚洲呦女专区| 国产亚洲女在线线精品| 精品久久久久久国产免费了| 男女午夜24式免费视频| 成人午夜免费福利视频| 成人激情免费视频| 亚洲黄片毛片在线观看| 亚洲精品无码不卡在线播放HE| 久久亚洲AV午夜福利精品一区 | 国产极品美女高潮抽搐免费网站| 免费人成在线观看视频播放| 国产亚洲精品资在线| 亚洲欧洲日韩不卡| 亚洲色大成网站www久久九| 特级毛片A级毛片免费播放|