Düzgün struktur seçimi çox vaxt alqoritmin özündən vacibdir. Metod sadədir: əsas əməliyyatı tapın, məhdudiyyətlərə baxın, ən sadə hazır tipi götürün və seçimi əməliyyat sayaraq yoxlayın. Əvvəlki dərsdə ADT kataloqu verilmişdi; bu dərs onu qərar qaydasına çevirir.
Əsas əməliyyata görə seçim
Məsələni əməliyyatlara bölün: axtarış, əlavə, silmək, sıra, minimum/maksimum, aralıq sorğusu. Ən tez-tez işləyən və ən böyük n-də işləyən əməliyyat seçimi təyin edir. Sonra məhdudiyyətlərə baxın: yaddaş, dublikatlar, açarların hash olunması, sıranın vacibliyi. Əsas strukturların qiymətləri:
| Struktur | Axtarış | Əlavə | Min / sıra |
|---|---|---|---|
list | O(n) | sonda O(1), ortada O(n) | O(n) |
| çeşidli siyahı | O(log n) | O(n) | O(1) |
deque | O(n) | hər iki ucda O(1) | O(n) |
set / dict | O(1) orta | O(1) orta | O(n) |
heapq | O(n) | O(log n) | O(1) |
Daha dəqiq qiymətlər: Python-un daxili mürəkkəbliyi.