Ocena użytkownikóww: ***** / 1
Nadesłany przez Yupk, 19 października 2015 19:27
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
dominanta_1_js.js:
//Wyznaczanie dominanty – mody
//www.algorytm.org
function findDominant(arr) {
var numbs = [];
var indxs = [];
//dla kolejnych elementow w tablicy
for (var i = 0, len = arr.length; i < len; ++i) {
var found = false;
//szukaj biezacego elementow w tablicy znalezionych wartosci
for (var j = 0, nlen = numbs.length; j < nlen; ++j) {
//jezeli znaleziono biezacy element w tablicy znalezionych wartosci,
//to zwieksz jego licznik wystapien, zaznacz ze zostal znaleziony i przerwij przeszukiwanie
if (arr[i] === numbs[j]) {
indxs[j]++;
found = true;
break;
}
}
//jezeli biezacy element nie zostal znaleziony w tablicy znalezionych wartosci
//to dodaj go do tej tablicy i ustaw licznik jego wystapien na 1
if (!found) {
numbs.push(arr[i]);
indxs[numbs.length-1] = 1;
}
}
var max = Math.max.apply(Math, indxs); //wyszukaj maksmymalny licznik wystapien
return numbs[indxs.findIndex(x=>x===max)]; //zwroc wartosc dla indeksu z maksymalnym licznikiem wystapien
}