Autor Zpráva
Kamahl
Profil *
mám naprosto banální dotaz, že se skoro stydim ho sem dát, ale fakt teď nevim jak bych to jednoduše udělal:
mám pole čísel: jak z něj vyberu to největší?
WanTo
Profil
Teoreticky by mohla existovat nějaká funkce v PHP.

Prakticky si cylkem projdeš pole a největší číslo najdeš:

$nejvetsi = 0;
foreach ($pole as $cislo) {
if ($cislo > $nejvetsi) $nejvetsi = $cislo;
}
Peter p360t Kováč
Profil
skús občas pozrieť aj do manuálu:
http://www.php.net/manual/en/function.rsort.php

neviem, či to je najlepšie riešenie, ale dá sa to napr. takto:


<?php
$cisla= array ("10", "7", "2", "14", "22");
rsort($cisla);
echo $cisla['0']; // zobrazi najvacsie cislo
?>
roberta
Profil
http://sk.php.net/max
WanTo
Profil
Peter p360t Kováč
Řadit číslo pomocí rsort a pak si vzít první z pole je zbytečně složité. Nejrychlejší třídící algoritmy zaberou N.log(N) operací, kde N je délka pole. Přitom k nalezení maximálního čísla bohatě stačí projít pole jednou (N operací).
Kamahl
Profil *
díky lidi
jijik
Profil *
WanTo:
tolhe by nefungovalo kdyby to bylo napriklad pole dluhu neebo neco podobneho, proste kdyby vsechny cisla byly pod nulou
25k
Profil *
? ;)
Joker
Profil
jijik
Z jakého důvodu se domníváte, že by to nefungovalo na pole záporných čísel? Já si myslím, že fungovalo.

edit: Pardon, až teď mě to trklo, na začátku je $nejvetsi = 0;
Takže obecnější by bylo:
$nejvetsi = $pole[0];
DoubleThink
Profil *
Řadit číslo pomocí rsort a pak si vzít první z pole je zbytečně složité. Nejrychlejší třídící algoritmy zaberou N.log(N) operací, kde N je délka pole. Přitom k nalezení maximálního čísla bohatě stačí projít pole jednou (N operací).

Časový rozdíl je ovšem zanedbatelný.
Toto téma je uzamčeno. Odpověď nelze zaslat.