Bilgisayar Bilimi
Ana Sayfa
Algoritmalar
Veri Yapıları
Programlama
Yazılım Geliştirme
Bilgisayar Bilimi
Algoritmalar, Veri Yapıları ve Yazılım Geliştirme
Algoritmalar
Sıralama Algoritmaları
Bubble Sort:
O(n²), basit ama yavaş
Quick Sort:
O(n log n) ortalama, pivot seçimi
Merge Sort:
O(n log n), kararlı sıralama
Heap Sort:
O(n log n), heap veri yapısı
Arama Algoritmaları
Linear Search:
O(n), sırasız veriler
Binary Search:
O(log n), sıralı veriler
Depth-First Search (DFS):
Graf gezinme
Breadth-First Search (BFS):
Seviye seviye gezinme
Dinamik Programlama
Memoization:
Top-down yaklaşım
Tabulation:
Bottom-up yaklaşım
Fibonacci:
Klasik örnek
Longest Common Subsequence:
Dizi hizalama
Knapsack Problem:
Optimizasyon
Graf Algoritmaları
Dijkstra:
En kısa yol, pozitif ağırlıklar
Bellman-Ford:
Negatif ağırlıklar
Floyd-Warshall:
Tüm çiftler arası en kısa yol
Kruskal & Prim:
Minimum spanning tree
Veri Yapıları
Temel Veri Yapıları
Array:
Sabit boyut, O(1) erişim
Linked List:
Dinamik boyut, O(n) erişim
Stack:
LIFO (Last In First Out)
Queue:
FIFO (First In First Out)
Ağaç Yapıları
Binary Tree:
Her düğüm max 2 çocuk
Binary Search Tree:
Sol < Kök < Sağ
AVL Tree:
Dengeli BST
Red-Black Tree:
Dengeli, renk özelliği
B-Tree:
Veritabanları için
Hash Tabloları
Hash Function:
Anahtar → İndeks
Collision Resolution:
Chaining, Open Addressing
Load Factor:
Performans göstergesi
Ortalama O(1):
Ekleme, silme, arama
Programlama Dilleri ve Paradigmalar
Python
Özellikler:
Yüksek seviye, yorumlanan, dinamik tip
Kullanım:
Veri bilimi, ML, web, otomasyon
Kütüphaneler:
NumPy, Pandas, scikit-learn
Programlama Paradigmaları
Prosedürel:
Fonksiyon odaklı (C)
Nesne Yönelimli:
Sınıf ve nesneler (Java, Python)
Fonksiyonel:
Saf fonksiyonlar (Haskell, Lisp)
Deklaratif:
Ne yapılacağı (SQL)
Yazılım Geliştirme
Versiyon Kontrolü
Git:
Dağıtık versiyon kontrol
GitHub/GitLab:
Kod barındırma
Komutlar:
commit, push, pull, merge, branch
Test ve Debugging
Unit Testing:
Birim testleri
Integration Testing:
Entegrasyon testleri
Debugging Tools:
pdb, IDE debuggers