Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
↑ karel88l: quicksort?
procedure quicksort(l, r: integer);
var
i, j, pivot, pom: integer;
begin
i := l; j := r;
pivot := akt[(l + r) div 2];
repeat
while (i < r) and (akt[i] < pivot) do i := i + 1;
while (j > l) and (pivot < akt[j]) do j := j - 1;
if i <= j then
begin
if i < j then
begin
pom := akt[i];
akt[i] := akt[j];
akt[j] := pom;
end;
i := i + 1;
j := j - 1
end
until i > j;
if j > l then quicksort(l, j);
if i < r then quicksort(i, r)
end;převzato z wikipedie, v quicku máš while, nebo jako nejsem zkušený programátor, ale tohle mě napadlo
Offline
↑ karel88l: jak jsem řekl, nejsem skill, ale jak jinak, než porovnávat hodnoty všech těch čísel, musíme to udělat, stačil by "půl quicksort" né rovnat je všechny, ale projet to, pokud narazím na větší, tak si ho "schovám" a jedu dál a potom po projetí všech ho vypsat
Offline
zavedeme proměnné:
pocet - v níž bude uloženo N
zadano - kolik čísel již uživatel zadal
nejvetsi - nejvetsi cislo
aktualnicislo - to, co prave uzivatel zadava
readln(pocet); // kolik cisel budeme nacitat
zadano:=0; // vynulujeme
nejvetsi:=0; // za hodnotu nejvetsi dame nejakou malickou hodnotu
while pocet>=zadano do begin // budeme postupne nacitat cisla, a zvetsovat pocet jiz projetych cisel
readln(aktualnicislo); // nacteme aktualni cislo
zadano:=zadano+1; // zvetsime pocet zadanych cisel pro podminku do whilu
if aktualnicislo>nejvetsi then nejvetsi:=aktualnicislo; // kdyz bude aktualni cislo vetsi nez dosavadni nejvetsi tak ho zmenime
end;
writeln(nejvetsi);Pokud by byla chyba v pascalovske syntaxi, tak se omlouvam, dlouho jsem v něm neprogramoval.
Ten postup, co radí mikl3 je na řazení čísel (tedy čísla seřadí od nejmenšího po největší pomocí metody rozděl a panuj), v tomto případě bych řekl že je až zbytečně komplikovaný a dělá příliš mnoho věcí navíc.
Offline