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

    以下为代码实现

    function heapsort( array ){
        bulidHeap( array );
        for( var i = array.length-1; i >= 0; --i ){
            swap( array, 0, i );
            adjust( array, 0, i );
        }
    }
    
    function buildHeap( array ){
        var i = Math.ceil(array.length / 2);
        for( ; i >= 0; --i) {
            adjust( array, i , array.length )
        }
    }
    
    function swap( array, i, j ){
        var tmp = array[ i ];
        array[ i ] = array[ j ];
        array[ j ] = tmp;
    }
    
    function adjust( array, i , j ){
        var larger = i;
        var left = i * 2 + 1;
        var right = i * 2 + 2;
        if( left < j && array[ left ] > array[ larger ]){
            larger = left;
        }
        if( right < j && array[ right ] > array[ larger ]){
            larger = right;
        }
        if( larger != i ){
            swap( array, larger, i );
            adjust( array, larger , j )
    
        }
    }
    
    var arr = [ 2, 3, 56, 12, 123, 5, 2, 5, 1, 5, 3, 26, 8, 2, 64, 23, 98 ];
    heapsort( arr );
  • 相关阅读:
    PHP登入
    PHP注册
    PHP数据访问
    php实现人员的权限管理
    PHP实现简单的评论与回复功能还有删除信息
    php文件的管理
    文件的操作
    文件上传及预览
    ajax分页
    三级联动
  • 原文地址:https://www.cnblogs.com/clearfix/p/4189189.html
Copyright © 2011-2022 走看看