[Algorithm] 快排與冒泡

來源:互聯網
上載者:User

快排,可以在len長度較小的時候,改用冒泡等簡單的排序方式,因為len較小的時候,遞迴排序,需要棧操作,代價較大。

void fun(int[] a, int len) {  if(len <= 1) {    return;  }    boolean is_right = true;   int left = 0;  int right = len - 1;  int value = a[left];  while(left < right) {    if(is_right) {      if(a[right] <= value) {        a[left] = a[right];        is_right = !is_right;        left++;      } else {        right--;      }    }    else {    }  }  a[left] = value;  fun(a, left);  fun(a+left+1, len-left-1);}


冒泡

4 5 3 2 1

1: 4 5 3 2 
1 2 : 4 5 3
1 2 3 : 4 5
1 2 3 4 5

void fun(int a[], int len) {  for(int dst=0; dst<len-1; dst++) {      boolean hasChanged = false;      for(int src=len-1; src>dst; src--) {        if(a[src] < a[src-1]) {          swap(a[src], a[src-1]);          hasChanged = true;        }      }      if(!hasChanged) {        break;      }  }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.