zoukankan      html  css  js  c++  java
  • 堆排序

    public class heap_Sort {
        
        
        int a []={12,34,543,21,543,645,65,254767,54,7687,9808,234};
        public heap_Sort(){
            heapsort(a);
            
        }
    
        
        public void heapsort(int[] a){
            
            int alengh=a.length;
            
            for (int i=0;i<alengh;i++){
                
                buildMaxHeap(a,alengh-1-i);
                
            }    
            
        }
        
        
        
        
        //
        private void buildMaxHeap(int [] data,int lastindex){
            
            for(int i=(lastindex-1)/2;i>=0;i--){
                
                int k=i;
                while(k*2+1<=lastindex){
                    int bigindex=2*k+1;
                    
                    if(bigindex<lastindex){
                        
                        if(data[bigindex]<data[bigindex+1]){
                            
                            
                            bigindex++;
                        }
                        
                    }
                    if(data[k]<data[bigindex]){
                        
                        swap(data,k,bigindex);
                        k=bigindex;
                    }else{break;}
                    
                    
                }
                
                
            }
            
            
        }
        
        //
        private void swap(int [] data,int i,int j){
            
            int tmp=data[i];
            data[i]=data[j];
            data[j]=tmp;
            
        }
    }
  • 相关阅读:
    BZOJ 4010: [HNOI2015]菜肴制作( 贪心 )
    bzoj 1084
    bzoj 2763
    bzoj 1003
    bzoj 1858
    codevs 1296
    cf 438D
    vijos 1083
    codevs 3303
    bzoj 1296
  • 原文地址:https://www.cnblogs.com/luo-mao/p/6108785.html
Copyright © 2011-2022 走看看