Přejít na hlavní obsah

Jak odstranit stejná čísla z pole

Algoritmus pro nalezení stejných čísel v poli umožňuje najít a odvodit všechna čísla, která se v daném poli opakují. K implementaci algoritmu lze použít následující přístup:

1. Vytvořit prázdný seznam nebo pole, ve kterém budou uložena nalezená duplicitní čísla.

2. Projděte každý prvek pole pomocí cyklu. Pro každý prvek je třeba:

- Zkontrolujte, zda je tato položka již v seznamu nalezených duplicitních čísel.

- Pokud položka není v seznamu nalezených čísel, přidejte ji do seznamu.

- Pokud je položka již v seznamu nalezených čísel, přeskočit ji.

3. Po dokončení cyklu, vypněte hodnoty ze seznamu nalezených opakujících se čísel.

Pole-základ pro nalezení opakujících se čísel

Prvním krokem algoritmu je třídění pole

Proces řazení bublinou je založen na vícenásobném porovnávání párů sousedních prvků pole a jejich přeskupování podle dané podmínky třídění. V důsledku každého průchodu se největší (minimální) prvek "vynoří" na správné místo. Opakováním tohoto procesu pro všechny prvky pole dosáhneme úplného třídění.

Příklad algoritmu řazení bublinou:

function bubbleSort(arr) arr[j + 1]) >if (sorted) >return arr;>

Po aplikaci tohoto algoritmu do našeho pole budou prvky uspořádány, což nám umožní provádět další operace k nalezení opakujících se čísel. Výběr metody třídění závisí na velikosti a struktuře našeho pole a požadované účinnosti algoritmu.

Druhým krokem je srovnání prvků pole

K tomu je třeba projít všechny prvky tabulky a porovnat je s následujícími prvky. Pokud jsou nalezena stejná čísla, budou zvýrazněna v samostatném řádku tabulky.

Proces porovnávání lze provést pomocí vnořených cyklů. Vnější cyklus bude procházet všemi prvky pole a vnitřní cyklus bude porovnávat aktuální prvek s následujícími.

IndexPočet
03
15
25
37
49

V tomto příkladu si můžete všimnout, že čísla 5 a 5 jsou stejná. To znamená, že budou zvýrazněny v samostatném řádku tabulky a zobrazeny uživateli.

Výhody algoritmu pomocí hash tabulky

Za prvé, použití hash tabulky umožňuje efektivněji řešit problém nalezení stejných čísel, zejména v případech, kdy je pole dlouhé nebo obsahuje mnoho opakujících se prvků. Díky hash tabulce se Běh algoritmu výrazně zkracuje ve srovnání s jednoduššími algoritmy, které vyžadují obcházení pole porovnáním každého prvku se zbytkem.

Za druhé, použití hash tabulky vám umožňuje pohodlně ukládat a zpracovávat jedinečné hodnoty, aniž byste potřebovali další paměť pro ukládání duplicitních položek. Hash tabulky poskytují rychlý přístup k hodnotám podle jejich klíčů, což usnadňuje vyhledávání a odstraňování duplikátů z pole.

Za třetí, algoritmus pomocí hash tabulky lze snadno rozšířit pro práci s jinými typy dat, nejen celými čísly. Lze jej tedy použít k řešení široké škály problémů souvisejících s hledáním duplicit v různých datových strukturách.

Implementace algoritmu v různých programovacích jazycích

def find_duplicates(array):duplicates = []for i in range(len(array)):if array.count(array[i]) > 1 and array[i] not in duplicates:duplicates.append(array[i])return duplicatesarray = [1, 2, 3, 4, 5, 1, 2, 3]duplicates = find_duplicates(array)print(duplicates)
function findDuplicates(array) item === array[i]).length > 1 &&!duplicates.includes(array[i])) >return duplicates;>var array = [1, 2, 3, 4, 5, 1, 2, 3];var duplicates = findDuplicates(array);console.log(duplicates);
#include #include #include std::vector findDuplicates(std::vector array) return duplicates;>int main() 

Využití algoritmu v praxi

Příklad použitíPopis
Hledání duplikátů v databáziAlgoritmus může pomoci identifikovat duplicitní záznamy v databázi, což může být užitečné pro detekci chyb v datech nebo detekci duplicit.
Analýza síťových protokolůPři analýze síťových protokolů lze pomocí algoritmu identifikovat a analyzovat duplicitní datové pakety, které mohou naznačovat problémy v síťovém hardwaru nebo softwaru.
Vyhledávání opakujících se položek v seznamu objednávekAlgoritmus může pomoci identifikovat objednávky se stejnými pozicemi pro optimalizaci procesu doručení a odstranění možných chyb.