NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 12 - Pole v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Radim Štross
Tvůrce
Avatar
Odpovídá 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.

 
Odpovědět
26.9.2023 10:16
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.

Editováno 11.12.2023 22:21
 
Odpovědět
11.12.2023 22:19
Avatar
DarkCoder
Člen
Avatar
Odpovídá 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í.

Editováno 11.12.2023 23:55
Odpovědět
11.12.2023 23:52
"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.

 
Odpovědět
12.12.2023 23:46
Avatar
Odpovídá 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)

 
Odpovědět
15.12.2023 11:49
Avatar
DarkCoder
Člen
Avatar
Odpovídá 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ě. 🙂

Odpovědět
15.12.2023 12:54
"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í.

 
Odpovědět
19.4.2024 10:55
Avatar
DarkCoder
Člen
Avatar
DarkCoder:19.4.2024 18:50

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

Odpovědět
19.4.2024 18:50
"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.

 
Odpovědět
20.5.2024 21:00
Avatar
DarkCoder
Člen
Avatar
Odpovídá 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.

Odpovědět
20.5.2024 23:48
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 222.