// your code goes here
var arr = [ 2 , 5 , 8 , 9 , 3 , 10 , 33 , 1 , 6 , 7 ] ;
function findLowerNumber( arr) {
var least = arr[ 0 ] ;
var n = arr.length ;
for ( var i= 0 ; i< n; i++ ) {
if ( arr[ i] < least) {
least = arr[ i]
}
}
return least;
}
function findGreatest( arr) {
var greatest = arr[ 0 ] ;
var n = arr.length ;
for ( var i= 0 ; i< n; i++ ) {
if ( arr[ i] > greatest) {
greatest = arr[ i]
}
}
return greatest;
}
function merge( arr, l, mid, r) {
var n1 = m- l+ 1 ;
var n2 = r- m;
var L = [ ] , R = [ ] ;
for ( var p = 0 ; p< n1; p++ ) {
L[ p] = arr[ l+ p]
}
for ( var i = 0 ; i< n1; i++ ) {
R[ i] = arr[ m+ 1 + j] ;
}
var q= 0 , j= 0 , k= 0 ;
while( q< n1 && j< n2) {
if ( L[ q] <= R[ j] ) {
arr[ k] = L[ i] ;
i++
}
else {
arr[ k] = R[ j] ;
j++
}
k++;
}
while( q < n1) {
arr[ k] = L[ q] ;
q++;
k++
}
while( j < n2) {
arr[ k] = L[ j] ;
j++;
k++
}
return arr;
}
function mergesort( arr, l, r) {
if ( l< r) {
var m = ( l- r) / 2 ;
mergesort( arr, l, m) ;
mergesort( arr, m+ 1 , r) ;
merge( arr, l, m, r) ;
}
}
findLeastList( arr) ;
findLargestList( arr) ;
function findLargestList( arr) {
var sortedArray = mergesort( arr, 0 , arr.length ) ;
var mid = arr.length / 2 ;
for ( var i = arr.length - 1 ; i> mid; i-- ) {
console.log ( sortedArray[ i] )
}
}
function findLeastList( arr) {
var sortedArray = mergesort( arr, 0 , arr.length ) ;
var mid = arr.length / 2 ;
for ( var i = 0 ; i<= mid; i++ ) {
console.log ( sortedArray[ i] )
}
}
// your code goes here
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQp2YXIgYXJyID0gWzIsNSw4LDksMywxMCwzMywxLDYsN107CgpmdW5jdGlvbiBmaW5kTG93ZXJOdW1iZXIoYXJyKXsKCXZhciBsZWFzdCA9IGFyclswXTsKCXZhciBuID0gYXJyLmxlbmd0aDsKCWZvcih2YXIgaT0wO2k8bjtpKyspewoJCWlmKGFycltpXSA8IGxlYXN0KXsKCQkJbGVhc3QgPSBhcnJbaV0KCQl9Cgl9CglyZXR1cm4gbGVhc3Q7Cgp9CgpmdW5jdGlvbiBmaW5kR3JlYXRlc3QoYXJyKXsKCXZhciBncmVhdGVzdCA9IGFyclswXTsKCXZhciBuID0gYXJyLmxlbmd0aDsKCWZvcih2YXIgaT0wO2k8bjtpKyspewoJCWlmKGFycltpXSA+IGdyZWF0ZXN0KXsKCQkJZ3JlYXRlc3QgPSBhcnJbaV0KCQl9Cgl9CglyZXR1cm4gZ3JlYXRlc3Q7Cn0KCmZ1bmN0aW9uIG1lcmdlKGFycixsLG1pZCxyKXsKCXZhciBuMSA9IG0tbCsxOwoJdmFyIG4yID0gci1tOwogICAgdmFyIEwgPSBbXSwgUiA9IFtdOwogICAgCglmb3IodmFyIHAgPTA7cDxuMTtwKyspewoJCUxbcF0gPSBhcnJbbCtwXQoJfQoJCgoJZm9yKHZhciBpID0wO2k8bjE7aSsrKXsKCQlSW2ldID0gYXJyW20rMStqXTsKCX0KCQoJdmFyIHE9MCxqPTAsaz0wOwoJCgl3aGlsZShxPG4xICYmIGo8bjIpewoJCWlmKExbcV0gPD0gUltqXSl7CgkJCWFycltrXSA9IExbaV07CgkJCWkrKwoJCX0KCQllbHNlewoJCQlhcnJba10gPSBSW2pdOwoJCQlqKysKCQkJCgkJfQoJCWsrKzsKCX0KCQoJd2hpbGUocSA8IG4xKXsKCQlhcnJba10gPSBMW3FdOwoJCXErKzsKCQlrKysKCX0KCQoJd2hpbGUoaiA8IG4yKXsKCQlhcnJba10gPSBMW2pdOwoJCWorKzsKCQlrKysKCX0KCQogICAgcmV0dXJuIGFycjsKfQoKZnVuY3Rpb24gbWVyZ2Vzb3J0KGFycixsLHIpewoJaWYobDxyKXsKCQl2YXIgbSA9IChsLXIpLzI7CiAKIG1lcmdlc29ydChhcnIsbCxtKTsKIG1lcmdlc29ydChhcnIsbSsxLHIpOwogCiAgbWVyZ2UoYXJyLGwsbSxyKTsKCX0KIAoJCn0KCmZpbmRMZWFzdExpc3QoYXJyKTsKZmluZExhcmdlc3RMaXN0KGFycik7CgpmdW5jdGlvbiBmaW5kTGFyZ2VzdExpc3QoYXJyKXsKCXZhciBzb3J0ZWRBcnJheSA9IG1lcmdlc29ydChhcnIsMCxhcnIubGVuZ3RoKTsKCXZhciBtaWQgPSBhcnIubGVuZ3RoLzI7Cglmb3IodmFyIGkgPWFyci5sZW5ndGgtMTtpPm1pZDtpLS0pewoJCWNvbnNvbGUubG9nKHNvcnRlZEFycmF5W2ldKQoJfQp9CgpmdW5jdGlvbiBmaW5kTGVhc3RMaXN0KGFycil7Cgl2YXIgc29ydGVkQXJyYXkgPSBtZXJnZXNvcnQoYXJyLDAsYXJyLmxlbmd0aCk7Cgl2YXIgbWlkID0gYXJyLmxlbmd0aC8yOwoJZm9yKHZhciBpID0wO2k8PW1pZDtpKyspewoJCWNvbnNvbGUubG9nKHNvcnRlZEFycmF5W2ldKQoJfQp9Ci8vIHlvdXIgY29kZSBnb2VzIGhlcmUK