3 puan yazan GN⁺ 2023-09-30 | 1 yorum | WhatsApp'ta paylaş
  • algoritmalar, algoritma teknikleri, veri yapıları, tipik problemler ve ilgili tanımları bir araya getirip düzenleyen çevrimiçi bir sözlük
  • Ackermann's function gibi yaygın fonksiyonları içeren algoritma maddeleri yer alır
  • traveling salesman, Byzantine generals gibi tipik problem maddeleri içerir
  • bazı maddelerde uygulama (implementation) ve ek bilgi bağlantıları sunulur; maddeler alan (area) ve tür (type) dizinlerine göre düzenlenmiştir
  • business data processing, AI, graphics gibi belirli alanları hariç tutarak "genel (general)" algoritmalar ve veri yapılarına odaklanır

Site özeti ve işletici kurum

  • NIST bünyesindeki Information Technology Laboratory altında yer alan Software and Systems Division tarafından barındırılır
  • sözlüğün geliştirilmesi 1998'de Paul E. Black editörlüğünde başladı
  • algoritmalar, algoritma teknikleri, veri yapıları, tipik problemler ve ilgili tanımları ele alan sözlük biçimindedir

İçerik yapısı

  • algoritma maddeleri Ackermann's function gibi yaygın fonksiyonları içerir
  • problem maddeleri arasında traveling salesman ve Byzantine generals bulunur
  • bazı maddeler uygulama (implementation) ve ek bilgilere yönlendiren bağlantılar sunar
  • dizin sayfaları maddeleri alan (area) ve tür (type) bazında listeler
  • two-level index, bu sayfanın toplam indirme boyutunun 1/20'si kadardır

Kullanım bilgisi

  • kopya çekme amacıyla kullanım yasaktır; öğretmenlerin yardıma ihtiyaç duyması hâlinde iletişime geçmeleri istenir
  • öneri, düzeltme ve görüşler için Paul Black ile iletişime geçilmesi belirtilir

Kapsam dışı alanlar

  • şu anda aşağıdaki alanlara özgü algoritmalar dahil değildir
    • business data processing, communications, operating systems veya distributed algorithms
    • programming languages, AI, graphics, numerical analysis
  • kapsam, yalnızca "genel (general)" algoritmalar ve veri yapılarıyla bile ele almanın yeterince zor olması nedeniyle sınırlandırılmıştır

Dizin ve notlar

  • n-way, m-dimensional, p-branching gibi başında değişken bulunan terimler k- maddesi altında sınıflandırılır
  • A Glossary of Computer Oriented Abbreviations and Acronyms içinde yararlı maddeler bulunabilir

1 yorum

 
GN⁺ 2023-09-30
Hacker News yorumları
  • İlgili eski yazılar:
    Dictionary of Algorithms and Data Structures (1998) - https://news.ycombinator.com/item?id=12758176 - Ekim 2016 (18 yorum)
    Dictionary of Algorithms and Data Structures - https://news.ycombinator.com/item?id=8905348 - Ocak 2015 (4 yorum)
    Dictionary of Algorithms and Data Structures - https://news.ycombinator.com/item?id=5525893 - Nisan 2013 (15 yorum)
    Dictionary of Algorithms and Data Structures - https://news.ycombinator.com/item?id=2496539 - Nisan 2011 (16 yorum)
    Dictionary of Algorithms and Data Structures - https://news.ycombinator.com/item?id=2351074 - Mart 2011 (1 yorum)

  • Bu kaynağı sevmek istiyorum ama bildiklerim arasında Fenwick tree ve union-find algoritması/veri yapısı eksik
    Fenwick tree'yi ilk gördüğüm yer burasıydı: https://www.youtube.com/watch?v=uSFzHCZ4E-8&t=479s
    union-find'i de muhtemelen burada görmüştüm: https://www.youtube.com/watch?v=PGZ64ob440I
    Ama hatırladığım kadarıyla sabit boyutlu bir dizi değil, dictionary/hashmap uygulamasıydı

    • Epey fazla şey eksik gibi görünüyor. Fenwick'in başka bir adla da olsa bulunacağını sanmıştım ama göremiyorum; union-find'in olmaması ise daha da tuhaf. Gerçekten harika ve kullanışlı bir veri yapısı olduğu için altında gizlenmiş olabileceği başka bir ad da aklıma gelmiyor
      Hemen aklıma gelip bulamadıklarım karekök ayrıştırma, heavy-light decomposition ve genel olarak aralık minimum sorgusu (Range Minimum Query). Kişisel olarak aralık minimum sorgusu, genel bir problem olarak en sevdiklerim arasında; zaman ayırıp odaklanılacak teknikler kümesi olarak da sıralamadan çok daha ilginç buluyorum
      union-find veri yapısı genelde sabit diziyle gösterilir; algoritma analizini biraz daha ilginç kılan da bu. Arama maliyeti O(1)'in üzerine çıkarsa analizdeki ilginç kısmın gölgede kaldığını düşünüyorum. Elbette veri yapısının kendisi her iki şekilde de iyi çalışır
    • Sonlu bir derleme olduğu için neredeyse her şeyin eksik kalması kaçınılmaz. soft heap ya da finger tree de yok; Okasaki'nin ele aldığı saf fonksiyonel veri yapılarının çoğu da eksik
  • Harika bir kaynak ama veri yapıları ve algoritmalar derslerinin uygulamaya daha fazla odaklanmasını isterdim
    Bunun ne olduğunu bilmekten çok, neden yararlı olduğunu ve hangi bağlamda çıkarıp kullanmak gerektiğini bilmekle daha çok ilgileniyorum

    • https://www.redblobgames.com/ çok iyi bir kaynak; bolca bağlam sunarken teknik ayrıntılardan da kaçınmıyor
    • Benzer yönde bir yazı yazmıştım. Uygulamanın kendisinden ziyade, Blind 75 problem setini çözerken öğrendiklerime dayanarak hangi probleme hangi veri yapısı veya algoritma yaklaşımının uygulanacağını seçmeye yarayan bir rehber/karar ağacıydı
      Henüz uzman olmadığım için otorite sayılacak bir kaynak değil ama ilginç olabilir: https://sebinsua.com/algorithmic-bathwater#what-kind-of-prob...
    • Benim deneyimime göre derslerde zaten böyle yapılıyor. Verilen fonksiyonun zaman ve alan karmaşıklığı ile analizi işin merkezinde
    • Sanırım Skiena'nın bu konuda iyi bir dersi vardı
    • Bağlamı ve tarihi bilmek kesinlikle daha ilginç hale getiriyor ve genelde öğrenmeye de yardımcı oluyor
  • Göze çarpan bir madde: Marlena
    https://xlinux.nist.gov/dads/HTML/marlena.html
    Bunun ne anlama geldiğini bilen var mı?

  • Algoritmaların alfabetik sırayla dizildiği bir listenin öğrenenler için iyi bir başlangıç noktası olup olmadığından emin değilim
    Yeni başlayan ya da bu konuyu sağlam şekilde öğrenmek isteyen biri için bu klasik kitabın standart kaynak olduğunu düşünüyorum.[1]
    Geliştirici olarak büyümek ve FAANG kodlama mülakatlarını geçmek hedefse, bu belki de en güçlü kaldıraç olabilir
    [1] https://books.google.com/books/about/Introduction_To_Algorit...

    • Başlangıç noktası olarak muhtemelen değil. Ama başvuru kaynağı olarak harika
  • Bu listede tersine arama yapmanın nasıl mümkün olacağını merak ediyorum
    Örneğin bir algoritmanın nasıl çalıştığını kabaca anlatabiliyorum ama adını bilmiyorum ve bu listede olup olmadığını öğrenmek istiyorum. Günümüzde sözde kod olarak yazıp ChatGPT'ye vererek adını sorabilirsiniz belki, ama onun dışında pek bilmiyorum

    • Discord'a gidip sorarsanız biri söyleyecektir
  • Pull request kabul etseler iyi olurdu. acceleration structure gibi temel maddeler eksik

  • Gerçekten harika bir kaynak. Bütçe kesintileri gibi şeylere dayanıp yaşamaya devam etmesini umuyorum; ayrıca arşivlenmeli