SEN2211 · Data Structures and Algorithms I

Veri Yapıları ve Algoritmalar I

Karmaşıklık analizi, bağlı listeler, yığın, kuyruk, özyineleme, arama ve sıralama.

Kaynak kitap: Data Structures & Problem Solving Using Java (Mark Allen Weiss)

  1. 1. hafta
    Introduction to Data Structures and Algorithms, Complexity Analysis
    • Karmaşıklık analizi: Big-O, Ω, ΘBir kod parçasının kaç işlem yaptığını saymayı ve sonucu Big-O ile yazmayı öğrenirsin. Vizede her yıl gelen “What is the running time?” sorularının temeli.
  2. 2. hafta
    Introduction to Linked Lists
  3. 3. hafta
    Doubly Linked Lists, Ordered Linked Lists
    • Çift yönlü, sıralı ve dairesel listelerprev referansı olan çift yönlü liste, elemanları sıralı tutan ordered list ve sonu başa bağlanan dairesel liste. Sınavda referans güncelleme izleri ve insertSorted metodu sorulur.
  4. 4. hafta
    Linked List Applications and Review
    • Bağlı liste uygulamaları ve tekrarListeyi ters çevirme, ortayı bulma, döngü tespiti, iki sıralı listeyi birleştirme ve liste ile dizi karşılaştırması. Vizenin “write a method” sorularının çoğu bu dört algoritmadan gelir.
  5. 5. hafta
    Stacks
    • Yığın (stack): dizi ve bağlı liste ileLIFO mantığı, push/pop/peek, dizi ve bağlı liste ile iki gerçekleme, overflow ve underflow. Sınavda işlem dizisinden sonra yığının hali ve pop sırası soruları gelir.
  6. 6. hafta
    Stacks for Algebraic Operations
  7. 7. hafta
    Queues
    • Kuyruk (queue): dairesel dizi ve bağlı liste ileFIFO mantığı, enqueue/dequeue/peek, dizinin başa doğru kaymasını önleyen dairesel tampon ve head/tail'li bağlı kuyruk. Sınavda işlem dizisinden sonra dizinin ham hali ve front/rear değerleri sorulur.
  8. 8. hafta
    Queues II: Circular and Priority Queues
  9. 9. hafta
    Data Structure Classes in Java
    • Java'nın hazır veri yapıları: CollectionsArrayList, LinkedList, ArrayDeque, Stack, Queue/Deque arayüzleri, Iterator ve HashMap. Elle yazdığın yapıların Java'daki karşılıkları ve hangi işte hangisini seçeceğin. Sınavda “what is printed” ve yapı seçimi soruları gelir.
  10. 10. hafta
    Recursion
    • Özyineleme (recursion)Taban durum ve özyinelemeli adım, çağrı yığını izleri, bağlı listede özyinelemeli metotlar ve geri izlemeye (backtracking) giriş. Sınavda “what is printed”, çağrı sayısı ve özyinelemeli metot yazma soruları gelir.
  11. 11. hafta
    Recursive Complexity
  12. 12. hafta
    Searching Algorithms
    • Arama algoritmaları: doğrusal, ikili, interpolasyonDoğrusal arama, ikili aramanın döngülü ve özyinelemeli halleri, karşılaştırma sayıları ve interpolasyon aramasının fikri. Sınavda low/mid/high iz tablosu ve en kötü durumda karşılaştırma sayısı sorulur.
  13. 13. hafta
    Sorting Algorithms I
    • Sıralama I: bubble, selection, insertionÜç temel O(n²) sıralama algoritması, her geçişten sonra dizinin hali, karşılaştırma ve takas sayıları ve kararlılık (stability). Sınavda “show the array after each pass” sorusu neredeyse garanti.
  14. 14. hafta
    Sorting Algorithms II
    • Sıralama II: merge sort, quick sort, heap sortBöl ve yönet ile O(n log n) sıralama: merge sort'ta birleştirme adımları, quick sort'ta partition izi, heap sort'a genel bakış ve bütün sıralamaların karşılaştırma tablosu. Final sınavının sıralama sorularının çoğu buradan.