首页 > 代码库 > 堆排序
堆排序
package sort;public class CheapSort { public static final int MAX=10; public static void main(String[] args){ int []a={0,16,7,3,20,17,8}; int len=a.length; buildHeap(a,len-1); for(int i=1; i<len; i++) System.out.print(a[i]+","); sort(a,len-1); System.out.println(); for(int i=1; i<len; i++) System.out.print(a[i]+","); } public static void sort(int[] a,int size){ int n=size-1; if(n==1) return; swap(a,1,size); adjustHeap(a,1,n); sort(a,n); } public static void swap(int[] a,int i,int j){ int temp; temp=a[i]; a[i]=a[j]; a[j]=temp; } public static void buildHeap(int[] a,int size){ for(int i=size/2; i>0; i--) adjustHeap(a,i,size); } private static void adjustHeap(int[] a, int i, int size) { // TODO Auto-generated method stub int lchild=i*2; int rchild=i*2+1; int max=i; if(lchild<size && a[lchild]>a[max]) max=lchild; if(rchild<size && a[rchild]>a[max]) max=rchild; if(max!=i) { swap(a,i,max); adjustHeap(a,max,size); } }}
堆排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。