aureooms/js-median

View on GitHub
js/src/$5/clear.js

Summary

Maintainability
A
25 mins
Test Coverage
const clear = function ( compare , A , i ) {

    let _a = i ; let _b = ++i ; let _c = ++i ;
    let _d = ++i ; const _e = ++i ;

    let a = A[_a] ; let b = A[_b] ; let c = A[_c] ;
    let d = A[_d] ; const e = A[_e] ;

    // makes a < b and c < d
    if ( compare( a , b ) > 0 ) [ a , b , _a , _b ] = [ b , a , _b , _a ] ;
    if ( compare( c , d ) > 0 ) [ c , d , _c , _d ] = [ d , c , _d , _c ] ;

    // eliminate the lowest
    if ( compare( c , a ) < 0 ) {
        [ b , d , _b , _d ] = [ d , b , _d , _b ] ;
        c = a ; _c = _a ;
    }

    // gets e in
    a = e ; _a = _e ;

    // makes a < b
    if ( compare( a , b ) > 0 ) [ a , b , _a , _b ] = [ b , a , _b , _a ] ;

    // eliminate another lowest
    // remaining: a,b,d
    if ( compare( a , c ) < 0 ) {
        [ b , d , _b , _d ] = [ d , b , _d , _b ] ;
        a = c ; _a = _c ;
    }

    return compare( a , d ) > 0 ? _d : _a ;

} ;

exports.clear = clear ;