Słowniki, zbiory i tablice – czym się różnią od siebie w praktyce?

0

Witam serdecznie,
Czym się różnią od siebie w praktyce słowniki, zbiory oraz tablice?
Głównie interesuje mnie to w kontekście SWIFTa, ale pewnie w każdym języku będzie podobnie :)

0

Słownik jest jak słownik papierowy, każdy element to 2 wartości: "klucz" (słowo), oraz "wartość" - objaśnienie co to słowo znaczy. Słownik przeszukujesz po kluczu, uzyskując w efekcie jego wartość.
Tablica natomiast to coś na kształt ponumerowanych półek w magazynie, masz ponumerowane pojemniki, i coś tam w może w nich być. Sprawdzasz wg numeru.

0

A zbiór?:)

0

W przypadku Pythona jest to nieuporządkowana kolekcja unikalnych elementów, dla których np. zdefiniowano matematyczne działa na zbiorach.

2

Podstawowe pojęcia

  • Zbiór jest to pojęcie pierwotne oznaczające kolekcję czegoś, np. krzeseł, gdzie każdy element występuje tylko raz (w przeciwnym wypadku jest to multizbiór)
  • Atom to pojęcie pierwotne, czyli jakakolwiek wartość nie będąca zbiorem
  • Krotka to zbiór N elementów, które jesteśmy w stanie rozróżnić (używając np. jakiegoś atomu)

Z punktu widzenia teoretyka to:

  • Słownik to zbiór krotek zawierających 2 pola: klucz i wartość, przy czym klucz jest unikatowy względem całego zbioru
  • Tablica to słownik gdzie klucze są kolejnymi liczbami naturalnymi

Z punktu widzenia praktyka:

  • Tablica to ciągły fragment pamięci zawierający wartości o tym samym rozmiarze
  • Lista to uogólnienie tablicy do ciągu elementów (niekoniecznie ułożonych w ciągłum obszarze pamięci)
  • Drzewo to krotka zawierająca element oraz listę dzieci będących również drzewem lub pustą wartością
  • Zbiór będzie zaimplementowany jako tablica haszująca lub drzewo
  • Słownik jest zbiorem krotek jak wyżej

W praktyce różnice są takie:

Operacja Tablica Słownik Zbiór
Dostęp do wartości Najszybszy Wolny/Szybki Wolny/Szybki
Dodanie elementu Wolne Szybkie, ale może spowolnić Szybkie, ale może spowolnić
Typ klucza Liczba z przedziału 0 do rozmiaru tablicy (wyłącznie) Dowolny Nie dotyczy, zbiór zawiera tylko wartości

Dodatkowo na zbiorach można określić relacje oraz działania gdzie na pozostałych typach zbiór tych działań się odpowiednio redukuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0