Ana içeriğe geç

Yol haritası · Orta seviye

Bilgisayar biliminin temelleri

Veri yapıları, klasik algoritmalar ve kod çalışırken gerçekte neler olduğu.

Her programın ve her kodlama mülakatının arkasındaki araç kutusu: kodu ölçmek, veriyi tutan yapılar, onu arayan ve sıralayan algoritmalar ve alttaki makine.

42 sayfa4 bölümyaklaşık 1.5 saat okuma

  • Programlamanın Temelleri
  • Veri Yapıları
  • İşletim Sistemleri

Henüz başlanmadı0/42 okundu

Algoritma ile başla

İlerleme, yalnızca bu tarayıcıda tutulan okuma geçmişinizden gelir.

1. bölümKodu ölçmek

  1. 1AlgoritmaProgramlamanın Temelleri, s. 1Algoritma, bir listeyi sıralamak ya da en kısa yolu bulmak gibi bir sorunu çözmek veya bir işi tamamlamak için izlenen, sonlu ve adım adım yönergeler bütünüdür.
  2. 2Big O gösterimiProgramlamanın Temelleri, s. 4Big O gösterimi, girdi büyüdükçe bir algoritmanın çalışma süresinin ya da bellek kullanımının nasıl arttığını, kesin hız yerine büyüme oranıyla anlatır.
  3. 3ÖzyinelemeProgramlamanın Temelleri, s. 42Özyineleme, bir fonksiyonun sorunu, basit bir temel duruma ulaşana dek aynı sorunun daha küçük sürümleri için kendisini çağırarak çözdüğü tekniktir.
  4. 4Böl ve YönetVeri Yapıları, s. 6Böl ve yönet, bir problemi daha küçük bağımsız parçalara bölen, her birini özyinelemeyle çözen ve sonuçları birleştiren bir algoritma tasarım tekniğidir.

2. bölümVeri yapıları

  1. 5DiziProgramlamanın Temelleri, s. 15Dizi, tek bir ad altında saklanan ve her öğesine genellikle 0'dan başlayan indeks adlı sayısal konumuyla erişilen, sıralı bir değerler koleksiyonudur.
  2. 6Bağlı ListeVeri Yapıları, s. 4Bağlı liste, öğeleri ayrı düğümlerde saklayan bir veri yapısıdır; her düğüm bir değer ile zincirdeki sonraki düğüme bir referans tutar.
  3. 7YığınVeri Yapıları, s. 36Yığın, öğeleri son giren ilk çıkar (LIFO) sırasıyla saklayan bir veri yapısıdır; en son eklenen öğe her zaman ilk çıkarılan öğedir.
  4. 8KuyrukVeri Yapıları, s. 24Kuyruk, öğeleri ilk giren ilk çıkar (FIFO) sırasıyla saklayan bir veri yapısıdır; en uzun süre bekleyen öğe her zaman çıkarılacak sonraki öğedir.
  5. 9Hash TablosuVeri Yapıları, s. 18Hash tablosu, anahtar-değer çiftlerini saklayan ve hash fonksiyonuyla herhangi bir anahtarın değerini ortalamada sabit sürede bulan bir veri yapısıdır.
  6. 10SetVeri Yapıları, s. 29Set, her farklı değeri en fazla bir kez saklayan ve bir değerin içinde olup olmadığını çoğunlukla sabit sürede kontrol edebilen bir koleksiyondur.
  7. 11AğaçVeri Yapıları, s. 2Ağaç, kenarlarla bağlı düğümlerden oluşan hiyerarşik bir veri yapısıdır; en üstte tek bir kök düğüm ve altında dallanan çocuk düğümler bulunur.
  8. 12İkili Arama AğacıVeri Yapıları, s. 22İkili arama ağacı, her düğümün sol alt ağacında küçük, sağ alt ağacında büyük değerler bulunan ve hızlı sıralı aramaya olanak tanıyan bir ikili ağaçtır.
  9. 13HeapVeri Yapıları, s. 19Heap, en küçük ya da en büyük öğeyi kökünde tutan ağaç tabanlı bir veri yapısıdır; bu öğeyi O(1)'de okuyabilir ve O(log n)'de çıkarabilirsiniz.
  10. 14Öncelik KuyruğuVeri Yapıları, s. 27Öncelik kuyruğu, her öğenin bir önceliği olduğu ve ne zaman eklendiğine bakılmaksızın en yüksek öncelikli öğenin her zaman önce çıkarıldığı bir koleksiyondur.
  11. 15ÇizgeVeri Yapıları, s. 8Çizge, kenarlarla bağlı düğümlerden (köşelerden) oluşan ve yollar, arkadaşlıklar ve bağımlılıklar gibi ilişkileri modellemekte kullanılan bir veri yapısıdır.

3. bölümKlasik algoritmalar

  1. 16Doğrusal AramaVeri Yapıları, s. 14Doğrusal arama (linear search), bir değeri listenin öğelerini baştan tek tek kontrol ederek eşleşme bulana ya da sona ulaşana kadar arar ve O(n) zaman alır.
  2. 17İkili AramaVeri Yapıları, s. 21İkili arama, sıralı bir listedeki bir değeri arama aralığını sürekli yarıya bölerek bulan bir algoritmadır; her öğeyi denetlemek yerine O(log n) sürer.
  3. 18Two PointersVeri Yapıları, s. 34Two pointers tekniği, bir dizi ya da listeyi basit kurallarla ilerleyen iki indeksle tarar; iç içe döngü ister gibi görünen birçok problemi tek geçişte çözer.
  4. 19Sliding WindowVeri Yapıları, s. 31Sliding window tekniği, dizi ya da string'in ardışık parçalarıyla ilgili problemleri alt dizileri baştan hesaplamadan, pencereyi kaydırıp güncelleyerek çözer.
  5. 20Sıralama AlgoritmasıVeri Yapıları, s. 30Sıralama algoritması, öğeleri sayıları küçükten büyüğe ya da adları alfabetik olarak sıralamak gibi tanımlı bir düzene sokan adım adım bir yöntemdir.
  6. 21Bubble SortVeri Yapıları, s. 7Bubble sort (kabarcık sıralaması), sırası bozuk komşu öğeleri yer değiştiren basit bir sıralama algoritmasıdır; her geçiş kalan en büyük değeri sona taşır.
  7. 22Insertion SortVeri Yapıları, s. 20Insertion sort (eklemeli sıralama), sıralı listeyi öğe öğe kurar; her yeni öğeyi sıralanmışlar arasında yerine koyar, tıpkı eldeki kartları dizmek gibi.
  8. 23Merge SortVeri Yapıları, s. 26Merge sort, bir listeyi ikiye bölen, her yarıyı özyinelemeyle sıralayan ve sıralı yarıları O(n log n) sürede birleştiren böl ve yönet sıralama algoritmasıdır.
  9. 24QuicksortVeri Yapıları, s. 28Quicksort, öğeleri seçilen bir pivot etrafında bölümleyen, sonra küçük ve büyük grupları aynı şekilde sıralayan bir böl ve yönet sıralama algoritmasıdır.
  10. 25Genişlik Öncelikli AramaVeri Yapıları, s. 15Genişlik öncelikli arama, düğümleri başlangıca uzaklık sırasıyla ziyaret eden ve derine inmeden önce tüm komşuları keşfeden bir çizge gezinme algoritmasıdır.
  11. 26Derinlik Öncelikli AramaVeri Yapıları, s. 11Derinlik öncelikli arama, bir yolu gidebildiği kadar izleyip sonra geri dönerek sıradaki ziyaret edilmemiş dalı keşfeden bir çizge gezinme algoritmasıdır.
  12. 27Dijkstra AlgoritmasıVeri Yapıları, s. 12Dijkstra algoritması, tüm kenar ağırlıkları sıfır ya da pozitifken bir başlangıç düğümünden diğer tüm düğümlere en kısa yolları bulan çizge algoritmasıdır.
  13. 28Dinamik ProgramlamaVeri Yapıları, s. 13Dinamik programlama, bir problemi çakışan alt problemlere bölüp her cevabı saklayarak hiçbirini iki kez çözmeden problemi çözme tekniğidir.
  14. 29Açgözlü AlgoritmaVeri Yapıları, s. 1Açgözlü algoritma, önceki kararları yeniden düşünmeden her adımda o an en iyi görünen seçimi yaparak çözümü adım adım kuran bir algoritmadır.
  15. 30Union-FindVeri Yapıları, s. 35Union-find (ayrık küme birleşimi), öğe gruplarını izleyip birleştiren ve iki öğenin bağlı olup olmadığını neredeyse anında söyleyen veri yapısıdır.

4. bölümKaputun altında

  1. 31İşletim Sistemiİşletim Sistemleri, s. 16İşletim sistemi (OS), bilgisayarın donanımını yöneten temel yazılımdır; bu donanımı programlar arasında paylaştırır ve onu kullanmanın ortak bir yolunu sunar.
  2. 32CPUİşletim Sistemleri, s. 3CPU (merkezî işlem birimi), program talimatlarını yürüten ve her yazılımın üzerinde çalıştığı aritmetik, mantık ve kontrol işlerini yapan işlemcidir.
  3. 33RAMİşletim Sistemleri, s. 25RAM (rastgele erişimli bellek), bilgisayarın hızlı ve geçici çalışma belleğidir; kullanımdaki programları ve verileri tutar, güç kesilince içeriği kaybolur.
  4. 34DerleyiciProgramlamanın Temelleri, s. 12Derleyici, bir programlama dilinde yazılmış kaynak kodu, bilgisayarın çalıştırabileceği makine kodu gibi daha alt seviyeli bir biçime çeviren programdır.
  5. 35YorumlayıcıProgramlamanın Temelleri, s. 55Yorumlayıcı, tüm programı önce ayrı bir çalıştırılabilir dosyaya çevirmek yerine kaynak kodu doğrudan, adım adım çalıştıran bir programdır.
  6. 36Processİşletim Sistemleri, s. 23Process, bir programın çalışan örneğidir; işletim sistemi tarafından yönetilen kendi bellek alanına, kaynaklarına ve en az bir yürütme iş parçacığına sahiptir.
  7. 37Threadİşletim Sistemleri, s. 34Thread, işletim sisteminin zamanlayabileceği en küçük yürütme birimidir; bir process içinde çalışır ve o process'in belleğini diğer thread'lerle paylaşır.
  8. 38ParalellikProgramlamanın Temelleri, s. 44Paralellik, birkaç hesaplamayı birden çok CPU çekirdeğinde, GPU'da ya da makinede gerçekten aynı anda çalıştırmaktır; böylece büyük bir iş daha hızlı biter.
  9. 39Stack Belleğiİşletim Sistemleri, s. 29Stack belleği, bir thread'in fonksiyonlarının yerel değişkenlerini ve dönüş adreslerini tuttuğu bölgedir; her çağrıda büyür, dönüşte otomatik olarak küçülür.
  10. 40Heap Belleğiİşletim Sistemleri, s. 13Heap belleği, boyutu ya da ömrü önceden bilinmeyen, çalışma zamanında ayrılan ve onu oluşturan fonksiyondan uzun yaşayabilen verilerin tutulduğu bölgedir.
  11. 41Sanal Bellekİşletim Sistemleri, s. 26Sanal bellek, her process'e kendine ait özel bir adres alanı veren ve bunu arka planda fiziksel RAM'e ya da diske eşleyen bir işletim sistemi tekniğidir.
  12. 42Çöp toplamaProgramlamanın Temelleri, s. 9Çöp toplama, dil çalışma zamanının programın artık kullanamadığı verileri bulup bu belleği yeniden kullanıma açtığı otomatik bellek yönetimidir.

Yol boyunca karşılaştırın

Bu yol haritasında kolayca karıştırılan çiftler, yan yana.

Daha fazla

Ayarlar