阅读背景:

堆排序

来源:互联网 

java实现

大跟堆

package com.practice;

public class BigHeap {
	public void shift(int[] arr, int k, int m) {
		int i = k, j = 2 * i + 1;
		while(j<m) {
			if(j<m-1 && arr[j]<arr[j+1]) j++;
			if(arr[i] > arr[j]) break;
			else {
				swap(arr, i, j);
				i = j;
				j = 2*i + 1;
			}
		}
	}

	private void swap(int[] arr, int i, int j) {
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}
	
	public void sort(int[] arr, int n) {
		for(int i=n/2 -1;i>=0;i--) 
			shift(arr, i, n);
		for(int i=0;i<n;i++) {
			System.out.print(arr[0]+",");
			swap(arr, 0, n-i-1);
			shift(arr, 0, n-i-1);
		}
	}
	
}


package com.practice;

public class




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: