Java排序演算法之快速排序

來源:互聯網
上載者:User

標籤:int   font   重複   空間複雜度   時間複雜度   out   java   while   bsp   

基本過程:

  1. 設定兩個變數i、j,排序開始的時候:i=0,j=N-1;
  2. 以第一個數組元素作為關鍵資料,賦值給key,即key=a[0];
  3. 從j開始向前搜尋,即由後開始向前搜尋(j--),找到第一個小於key的值A[j],將A[j]和A[i]互換;
  4. 從i開始向後搜尋,即由前開始向後搜尋(i++),找到第一個大於key的A[i],將A[i]和A[j]互換;
  5. 重複第3、4步,直到i=j; (3,4步中,沒找到合格值,即3中A[j]不小於key,4中A[i]不大於key的時候改變j、i的值,使得j=j-1,i=i+1,直至找到為止)。

代碼實現:

public class KuaiSu {    public static void main(String []args){        int[] a = {12,20,5,16,15,1,30,45,23,9};        int low = 0;        int high = a.length-1;        paixu(a,low,high);        for(int i = 0; i<a.length; i++){             System.out.print(a[i]+",");         }          }        public static void paixu(int[] a,int low,int high){        if(low<high){            int key = sort(a,low,high);            paixu(a,low,key-1);            paixu(a,key+1,high);        }    }              public static int sort(int[] a,int low,int high){         int key = a[low];                  while(high>low){             //從後往前比較             while(high>low&&a[high]>=key){  //若大於key移動位置                 high--;             }             a[low]=a[high];  //不大於,交換兩個值             //從前往後比較             while(high>low&&a[low]<=key){  //若小於key移動位置                 low++;             }             a[high]=a[low];   //不小於,交換兩個值         }         a[low]=key;         return low;        }}

演算法效能分析:

時間複雜度:快速排序最壞的時間複雜度為O(n^2),平均時間複雜度為O(nlogn)。

空間複雜度:O(n)。

穩定性:由於在直接選擇排序中存在著不相鄰元素之間的互換,因此,直接選擇排序是一種不穩定的排序方法。

 

 

 

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.