常用排序演算法總結(三)----選擇排序 堆排序

來源:互聯網
上載者:User

SelectSort


代碼

package Sort;/** * @author Biang Hoo *O(n ^2 ) * 2013年9月10日 */public class SelectSort implements Sort{@Overridepublic void Sorting(int[] array) {int min;int tmp;for(int i=0;i<array.length;i++){min=i;for(int j=i+1;j<array.length;j++){if(array[j]<array[min]){min =j;}}tmp =array[i];array[i] =array[min];array[min]=tmp;}}}


HeapSort

代碼
package Sort;import java.util.Arrays;/** * @author Biang Hoo * * 2013年9月14日 */public class HeapSort implements Sort {public void Sorting(int[] array) {MakeMinHeap(array);for(int i=array.length-1;i>0;i--){Swap(array,0,i);ShiftDown(array,0,i-1);}}private void MakeMinHeap(int[] array){int len = array.length;for(int i=len/2-1;i>=0;i--){ShiftDown(array,i,len);}}private void ShiftDown(int[] array,int i,int n){int temp = array[i];int key=2*i+1;while(key<n ){if(key+1<n && array[key]>array[key+1]){key++;}if(array[key]>temp){break;}array[i] =array[key];i = key;key = 2*i+1;}array[i] = temp;}private void Swap(int[] array,int i,int j){int temp = array[i];array[i] = array[j];array[j] = temp;}}



相關文章

聯繫我們

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