Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нахождение "середины" массива. (https://javascript.ru/forum/misc/38516-nakhozhdenie-serediny-massiva.html)

zOdmin 05.06.2013 19:02

рони, спасибо за попытку! но не сработает на таком примере:

var arr = [1, 2, 3, 4, 5, 6, 7000, 8000];
function get(arr)
{
  var  m = Math.max(arr[0],arr[1]) , n = Math.min(arr[0],arr[1]);
  for (var i=0; i<arr.length; i=i+2)  {
  var min = Math.min(arr[i],arr[i+1]),
  max = Math.max(arr[i],arr[i+1]);
  if (max < m) m = max;
  if (min > n) n = min;
} ;
  return (n+m)/2
}
alert(get(arr));

рони 05.06.2013 19:02

danik.js,
:cray:
var arr = [9,7,1,8], a = [1, 2, 3, 4, 5, 6, 7, 8] ;
function get(a) {
    var c, e = a[0] > a[1] ? (c = a[1], a[0]) : (c = a[0], a[1]);
    for (var b = 0; b < a.length; b += 2) {
        var d, f = a[b] > a[b + 1] ? (d = a[b + 1], a[b]) : (d = a[b], a[b + 1]);
        f < e && (e = f);
        d > c && (c = d)
    }
    return (c + e) / 2
};
alert([get(arr),get(a)].join('\n'));

рони 05.06.2013 19:07

вариант не ок :-E )))

zOdmin 05.06.2013 21:31

В общем, решение оказалось простым, хоть и не очевидным.
Промежуточная задача - слияние двух упорядоченных массивов.


Часовой пояс GMT +3, время: 18:56.