Seřazené pole - Sorted array

Seřazené pole
Typ Pole
Vynalezeno 1945
Vynalezl John von Neumann
Časová složitost ve velké O notaci
Algoritmus Průměrný Nejhorší případ
Prostor Na) Na)
Vyhledávání O (log n) O (log n)
Vložit Na) Na)
Vymazat Na) Na)

Uspořádání pole je struktura dat pole , ve kterém jsou jednotlivé prvek v číselném, abecedním, nebo jiném pořadí, a umístěna v rovnoměrně rozložených adresy v paměti počítače. Obvykle se v počítačové vědě používá k implementaci statických vyhledávacích tabulek k uložení více hodnot, které mají stejný datový typ . Třídění pole je užitečné při uspořádání dat v uspořádané podobě a jejich rychlém obnovení.

Metody

Existuje mnoho dobře známých metod, kterými lze pole řadit, mezi něž patří mimo jiné: Selection selection , Bubble sort , Insertion sort , Merge sort , Quicksort , Heapsort a Counting sort . Tyto techniky řazení mají s nimi spojené různé algoritmy, a proto použití každé metody má různé výhody.

Přehled

Seřazená pole jsou prostorově nejefektivnější datová struktura s nejlepší lokalitou reference pro sekvenčně uložená data.

Prvky v seřazeném poli se nacházejí pomocí binárního vyhledávání v O (log n ); Takto seřazené pole jsou vhodné pro případy, kdy je třeba, aby bylo možné vyhledávat prvky rychle, například jako sada nebo Multiset datové struktury . Tato složitost pro vyhledávání je stejná jako pro samovyvažující binární vyhledávací stromy .

V některých datových strukturách se používá řada struktur. V takových případech lze stejné třídicí metody použít k třídění struktur podle nějakého klíče jako prvku struktury; například třídění záznamů studentů podle čísel rolí nebo jmen nebo známek.

Pokud někdo používá seřazené dynamické pole , je možné vložit a odstranit prvky. Vkládání a mazání prvků v seřazeném poli se provádí v O ( n ), kvůli nutnosti posunout všechny prvky následující za prvkem, který má být vložen nebo odstraněn; ve srovnání se samovyvažujícím binárním vyhledávacím stromem se vloží a odstraní O (log n ). V případě, že jsou prvky odstraněny nebo vloženy na konec, může to seřazené dynamické pole provést v amortizovaném čase O (1), zatímco samovyvažující binární vyhledávací strom vždy pracuje na O (log n ).

Prvky v seřazeném poli lze vyhledat podle jejich indexu ( náhodný přístup ) v čase O (1), operace vyžadující čas O (log n ) nebo O ( n ) pro složitější datové struktury.

Dějiny

John von Neumann napsal první program pro třídění polí ( merge sort ) v roce 1945, kdy se ještě stavěl první počítač s uloženým programem .

Aplikace seřazených polí

Komerční výpočetní technika

Vládní organizace, soukromé společnosti a mnoho webových aplikací se musí vypořádat s obrovským množstvím dat. K datům bude často nutné přistupovat vícekrát. Uchovávání dat v seřazeném formátu umožňuje rychlé a snadné vyhledávání.

V diskrétní matematice

Seřazená pole lze použít k implementaci Dijkstrova algoritmu nebo Primova algoritmu . Také algoritmy jako Kruskalův algoritmus pro hledání minimálních stromů.

V prioritním plánování

Na úrovni operačního systému čeká mnoho procesů najednou, ale dokáže zpracovat pouze jeden proces v jedné instanci v čase. Proto jsou každému procesu přiřazeny priority. Poté jsou procesy odeslány do CPU podle nejvyšší priority pomocí seřazeného pole ID procesů. Tady byly procesy tříděny v závislosti na jejich prioritách a poté jim byla přidělena CPU. Proces s nejvyšší prioritou zaujímá první místo v seřazeném poli. Proto je plánování prioritních systémových procesů hotové.

V plánování nejkratší práce

Toto je speciální případ prioritního plánování. Zde se procesy třídí podle doby trvání procesů. Proces vyžadující nejkratší dobu bude nejprve přidělen CPU. Procesy jsou proto odesílány do CPU podle jejich doby trvání.

Prioritní plánování.pdf
Proces Čas prasknutí
P1 3
P2 4
P3 1
P4 8
P5 6

Viz také

Reference