Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 12. diel - Pole v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Radim Štross
Tvůrce
Avatar
Odpovedá na Marek Jiříček
Radim Štross:26.9.2023 10:16

Ahoj Marku, děkujeme za upřesnění. V našem příkladu stačí zjistit, zda není získaná hodnota záporná, ale lekci jsem předal k aktualizaci a popis metody binarySearch() opravíme.

Avatar
Guri Lucie Vlčková:11.12.2023 22:19

Chtěla jsem vědět proč řed vyhledáváním Arrays.binary­Search() musí být data v poli seřazena. Seřadí se to podle abecedy nebo u čísel od 0 do 9. Přesto jsem chtěla vědět proč to musí být seřazený?
Co by se stalo, kdyby to nebylo seřazený a začala jsem vyhledávat v poli? Našla jsem takové to vysvětlení:

  • Metoda Arrays.binarySearch ve standardní knihovně Javy očekává, že pole, ve kterém provádí hledání, je seřazeno. Pokud pole není seřazeno, výsledky hledání mohou být nesprávné, nekonzistentní a nepředvídatelné.
  • Při binárním vyhledávání se algoritmus porovnává hledaný prvek s prvkem uprostřed pole. Pokud jsou tyto prvky shodné, hledání je úspěšné. Pokud je hledaný prvek menší než prvek uprostřed, algoritmus pokračuje ve vyhledávání v levé polovině pole. Naopak, pokud je hledaný prvek větší, algoritmus pokračuje ve vyhledávání v pravé polovině pole. Tato strategie funguje efektivně, pouze pokud je pole seřazeno.

Pokud pole není seřazeno, algoritmus nemusí pracovat správně, protože předpokládá, že prvky jsou v nějakém uspořádání. V takovém případě může dojít k chybným výsledkům, kde prvek může být označen za nenalezený, i když se ve skutečnosti v poli nachází, nebo naopak.

Editované
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Guri Lucie Vlčková
DarkCoder:11.12.2023 23:52

Důvodem je to, že hodnoty nalevo od testovaného prvku u vzestupně seřazeného pole jsou zaručeně menší nebo rovny od hodnoty testovaného prvku a hodnoty napravo od testovaného prvku jsou zaručeně větší nebo rovny od hodnoty testovaného prvku.

U neseřazeného pole tohle neplatí a nemůžeš pak dále použít techniku půlení intervalu, která je typická pro binární vyhledávání.

Editované
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Guri Lucie Vlčková:12.12.2023 23:46

Nebylo v 11 lekci Pole třída Arrays.CopyOf() ? Je tu CopyOfRange(). Ale nějak mi utkvělo v hlavě že tu bylo i CopyOf(). Není tahle stránka upravená? Kde případně CopyOf() najdu?
Děkuju.

Avatar
Odpovedá na DarkCoder
Guri Lucie Vlčková:15.12.2023 11:49

Ahoj,
mezi první až jedenáctou lekcí se algoritmy nevyučují. Proto jsem to nevěděla. =:c)

Avatar
DarkCoder
Člen
Avatar
Odpovedá na Guri Lucie Vlčková
DarkCoder:15.12.2023 12:54

To je naprosto v pořádku, tam pokročilou algoritmizaci nenajdeš. Jsi v sekci o programovacím jazyce, tam najdeš pouze možnosti jaké daný jazyk nabízí a jak je použít.

Znalostmi možností jazyka vše teprve začíná. Programování je o tom umět řešit problémy s možnostmi které máš k dispozici. Není ostudou že si to nevěděla. Dovednosti a schopnosti jak co řešit totiž získáváš postupně. 🙂

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Míchal Kratochvíl :19.4.2024 10:55

Na rozdíl od přechozích lekcí je tahle velmi těžko pochopitelná. Hodně údajů a málo vysvětlování.

Avatar
DarkCoder
Člen
Avatar
DarkCoder:19.4.2024 18:50

Článek by potřeboval kompletní rework, výklad se dosti kostrbatý..

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Lucie Hrdličková:20.5.2024 21:00

Těžké. Nedokážu to pořádně pochopit. Jsem začátečník.

Avatar
DarkCoder
Člen
Avatar
Odpovedá na Lucie Hrdličková
DarkCoder:20.5.2024 23:48

Zkus popsat, která činnost s polem Ti není srozumitelná. Např. Deklarace, Inicializace, průchod polem, přístup ke konkrétnímu prvku, apod.

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 222.