快速排序演算法 java實現

來源:互聯網
上載者:User

標籤:main   and   ati   print   div   ++   序號   tar   color   


1 public class QuickRank { 2 public static void main(String[] args) { 3 int[] original={26,58,1,24,75,69,32,45,841,25898}; 4 QuickRank quickRank=new QuickRank(); 5 quickRank.rankSimple(original,0,original.length-1); 6 for(int i:original) 7 System.out.println(i); 8 } 9 //清晰明了10 public void rankSimple(int[] original,int start,int end){11 if(end<=start) return;//遞迴結束條件12 int standard=original[start];13 int leftOrder=start;14 int rightOrder=end;15 while(leftOrder<rightOrder){16 //從右往左跑17 while(leftOrder<rightOrder && original[rightOrder]>standard)18 rightOrder--;19 original[leftOrder]=original[rightOrder];20 //從左往右跑21 while(leftOrder<rightOrder && original[leftOrder]<standard)22 leftOrder++;23 original[rightOrder]=original[leftOrder];24 }25 original[leftOrder]=standard;26 //遞迴開始27 rankSimple(original, start, leftOrder-1);28 rankSimple(original, leftOrder+1, end);29 }30 }
結果:12426324558697584125898

快速排序演算法的思想:

  1.一次排序(在排序結束之前,數組中始終有一個位置看為“空值”,該位置待插入資料):

    ①隨便取待排序數組的一個值(本例取第一個值)作為本次排序的基準值standard,原數組該值得位置可看成空值,待插入。

    ②從待排序數組右往左,依次比較每個值與standar的大小,如果有比standard小的,則將該值插入數組中的空值地區,此時,該值在數組中的位置看成 空值。

    ③從待排序數組左往右,依次比較每個值與standar的大小,如果有比standard大的,則將該值插入數組中的空值地區,此時,該值在數組中的位置看成空值。

    ④迴圈②③步驟,直到從右往左和從左往右的序號相等;表明本次排序結束,將standard放入該序號位置。此時,該序號前所有數字都小於standard,序號後所有的數字都大於standard,形成兩個小的數組;

  2.迭代

    通過一次排序步驟後,便得到standard前後兩個數組,然後分別將這兩個數組進行一次排序,并迭代進行;

  3.迭代結束標誌:

    進入一次排序的數組開始位置和結束位置相等,即傳進來的是一個數字,不再需要排序;

 

快速排序演算法 java實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.