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

    package my0410;
    
    public class HeapSort {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int data[]={0,9,2,8,7,6,5,4,3,2,1,1,3,2};
            heapSort(data);
            for(int i=0;i<data.length;i++){
                System.out.println(data[i]);
            }
        }
        public static void heapSort(int[] data){
            int i;
            for(i=data.length/2;i>0;i--){
                heapAdjust(data,i,data.length-1);
            }
            for(i=data.length-1;i>1;i--){
                swap(data,1,i);
                heapAdjust(data,1,i-1);
            }        
        }
    public static void heapAdjust(int[] data,int s,int m){
        int temp=data[s];
        int j;
        for(j=2*s;j<=m;j*=2){         
            if(j<m&&data[j]<data[j+1]){
                j+=1;
            }
            if(temp>data[j])
                break;
            data[s]=data[j];
            s=j;
            
        }
        data[s]=temp;    
    }
    public static void swap(int[] data,int i,int j){
        int temp=data[i];
        data[i]=data[j];
        data[j]=temp;
    }
    }
  • 相关阅读:
    安利博客
    python 的高阶算法之堆排序
    functools模块用途
    类型注解
    高阶函数和装饰器
    生成器

    递归函数
    匿名函数
    函数 的 返回值作用域
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4418512.html
Copyright © 2011-2022 走看看