Skip to content

sadikgolpekk/AlgorithmLab

Repository files navigation

Veri Yapıları ve Algoritmalar

Bu proje, temel veri yapıları ve algoritmalar üzerine odaklanmaktadır. Amacımız, bu yapıların çalışma prensiplerini anlamanızı ve bunları pratikte nasıl uygulayacağınızı öğretmektir.


Neden C Dili?

C

Bu projede C dili kullanılmıştır çünkü:

  1. Düşük Seviye Kontrol:

    • C, bellek yönetimi gibi düşük seviyeli işlemleri kontrol etmenizi sağlar. Bu da veri yapıları ve algoritmaların iç işleyişini daha iyi anlamanızı mümkün kılar.
  2. Hız ve Performans:

    • C, doğrudan donanımla iletişim kuran bir dildir ve bu nedenle oldukça hızlıdır. Veri yapıları ve algoritmalar gibi performansın kritik olduğu konularda ideal bir seçimdir.
  3. Eğitimsel Avantaj:

    • C, temel programlama prensiplerini ve algoritma yapılarını öğrenmek için mükemmel bir başlangıç noktasıdır. Çoğu modern programlama dili, C dilinin temellerine dayanmaktadır.
  4. Geniş Kapsamlı Kullanım Alanı:

    • Sistem programlama, gömülü sistemler ve işletim sistemlerinde yaygın olarak kullanılmaktadır. C dilini öğrenmek, bu alanlarda ilerlemenize katkı sağlar.
  5. Minimal Soyutlama:

    • C, birçok soyutlama katmanından arındırılmıştır. Bu, algoritmaların ve veri yapılarına ilişkin mantığın doğrudan görünmesini sağlar.

Veri Yapıları Nedir?

DataStructures

Veri yapıları, verilerin organize edilme biçimidir. Bu yapılar, verilerin depolanmasını, yönetilmesini ve işlenmesini daha etkili hale getirir. Doğru bir veri yapısı seçimi, algoritmaların performansını önemli ölçüde artırabilir.

Örnek Veri Yapıları:

  • Bağlı Listeler: Dinamik bellek yönetimi için kullanılır. Düğümler birbirine işaretçilerle bağlanır.
  • Yığın (Stack): İlk giren son çıkar (LIFO) prensibine dayanır. Geri alma (undo) işlemleri için kullanılır.
  • Kuyruk (Queue): İlk giren ilk çıkar (FIFO) prensibine dayanır. Görev sıralama ve işlem sırası için uygundur.
  • Ağaçlar (Trees): Veri organizasyonu ve hızlı arama işlemleri için kullanılır.

Algoritmalar Nedir?

algorithm

Algoritmalar, belirli bir problemi çözmek için izlenmesi gereken adımlardır. İyi tasarlanmış bir algoritma, hem doğru hem de hızlı bir çözüm sunar.

Örnek Algoritmalar:

  • Sıralama Algoritmaları:
    • Bubble Sort, Selection Sort, Insertion Sort.
  • Arama Algoritmaları:
    • Doğrusal Arama, İkili Arama.

Projenin Özellikleri

Bu projede:

  1. Veri yapıları ve algoritmaların temel mantığı açıklanmıştır.
  2. Kodlar, adım adım öğretici bir şekilde tasarlanmıştır.
  3. Her algoritma ve veri yapısının uygulama alanlarına değinilmiştir.
  4. Kodlar, derleyip çalıştırmanız için hazırdır.

Kullanım Alanları

Veri yapıları ve algoritmalar, bilgisayar bilimlerinin temelini oluşturur ve birçok alanda kullanılır:

  • Büyük veri analizi
  • Yazılım geliştirme
  • Makine öğrenimi
  • Sistem tasarımı
  • Veri tabanı yönetimi

Öğretici Örnekler

  • Bağlı Liste: Bir listenin başına, sonuna ve belirli bir konumuna düğüm ekleme işlemleri.
  • Yığın: Veri ekleme ve çıkarma işlemleriyle birlikte dinamik bellek yönetimi.
  • İkili Arama Ağacı: Eleman ekleme, silme ve sıralı gezinme yöntemleri (inorder traversal).
  • Sıralama Algoritmaları: Bubble Sort, Selection Sort ve Insertion Sort algoritmalarının işleyişi.
  • Arama Algoritmaları: Doğrusal ve ikili arama yöntemleriyle verimli arama işlemleri.

Katkıda Bulunun

Projeye katkıda bulunmak isterseniz:

  • Projeyi fork edin.
  • Yeni bir özellik ekleyin veya hata düzeltmeleri yapın.
  • Bir pull request ile değişikliklerinizi gönderin.


Lisans

Bu proje MIT Lisansı altında sunulmaktadır. Daha fazla bilgi için LICENSE dosyasını inceleyebilirsiniz.

İletişim

Sorularınız veya önerileriniz için [email protected] adresine ulaşabilirsiniz.


Bu proje, veri yapıları ve algoritmalar konularına yeni başlayanlar için bir rehber niteliğindedir. Bol kodlamalar!

About

Yazmaya çalıştığım temel algortimalar.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages