Deo zbornika Učimo algoritme

Nalaženje krajnjih vrednosti niza

Jednim prolaskom niza možemo naći njegove krajnje vrednosti: najmanju, najveću, donajmanju i donajveću vrednost.

Složenost svih ovih algoritama je 0(n).

Nalaženje najmanjeg broja

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

let najmanji = Infinity

for (const broj of brojevi) {
  if (broj < najmanji) {
    najmanji = broj
  }
}

console.log(najmanji)

Najmanji broj u nizu možemo naći i pomoću ugrađene funkcije u Javaskriptu:

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

console.log(Math.min(...brojevi))

Nalaženje najvećeg broja

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

let najveci = -Infinity

for (const broj of brojevi) {
  if (broj > najveci) {
    najveci = broj
  }
}

console.log(najveci)

Najveći broj u nizu možemo naći i pomoću ugrađene funkcije u Javaskriptu:

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

console.log(Math.max(...brojevi))

Nalaženje dva najmanja broja

Nalaženje najmanjeg i donajmanjeg broja u nizu (da nisu isti):

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

let najmanji = Infinity   // može i brojevi[0]
let donajmanji = Infinity // može i brojevi[0]

for (const broj of brojevi) {
  if (broj < najmanji) {
    donajmanji = najmanji
    najmanji = broj
  } else if (broj < donajmanji && broj !== najmanji) {
    donajmanji = broj
  }
}

console.log(najmanji, donajmanji)

Nalaženje dva najveća broja

Uz manju modifikaciju, možemo naći i dva najveća broja u nizu:

const brojevi = [2, 3, 4, 5, 44, -2, -33, 33, 11, 22, 33, 44, 2, 3, 4]

let najveci = -Infinity
let donajveci = -Infinity

for (const broj of brojevi) {
  if (broj > najveci) {
    donajveci = najveci
    najveci = broj
  } else if (broj > donajveci && broj !== najveci) {
    donajveci = broj
  }
}

console.log(najveci, donajveci)