排序演算法Java實現(堆排序)

來源:互聯網
上載者:User

標籤:

 1 package sorting; 2  3 /** 4  * 堆排序 5  * 平均O(nlogn),最好O(nlogn),最壞O(nlogn);空間複雜度O(1);不穩定;較複雜 6  * @author zeng 7  * 8  */ 9 public class DuiPaixu {10 11     public static void duipaixu(int[] a) {12         int i, tmp;13         for (i = a.length / 2; i >= 1; i--)14             HeapAdjust(a, i, a.length);15         for (i = a.length; i > 1; i--) {16             tmp = a[0];17             a[0] = a[i - 1];18             a[i - 1] = tmp;19             HeapAdjust(a, 1, i - 1);20             for (int j : a)21                 System.out.print(j + " ");22             System.out.println();23         }24     }25 26     public static void HeapAdjust(int A[], int i, int length) {27         int j = 2 * i;28         int tmp = A[i - 1];29         while (j <= length) {30             if (j < length && A[j - 1] < A[j])31                 j++;32             if (A[j - 1] > tmp) {33                 A[i - 1] = A[j - 1];34                 i = j;35                 j = 2 * i;36             } else {37                 break;38             }39         }40         A[i - 1] = tmp;41     }42 43     public static void main(String[] args) {44         int[] b = { 49, 38, 65, 97, 76, 13, 27, 50 };45         duipaixu(b);46         for (int i : b)47             System.out.print(i + " ");48 49     }50 51 }

 

排序演算法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.