🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Zeynep HABER / VERİYAPILARI / SIKIŞTIRMA ALGORİTMALARI - LZW

1-) VERİYAPILARI - SIKIŞTIRMA ALGORİTMALARI - LZW

LZW algoritmasının temelinde sözlük(dictionary) yapısı vardır. ASCII tabloda olan bütün karakterler bu sözlük yapısına eklenir. Sonrasında metin taranmaya başlanır. Geçici bir karakter dizisi oluşturulur ve bilinmeyen bir karakter dizisi elde edilene kadar bu diziye eklenir. Bilinmeyen bir karakter dizisine rastlandığında bu sözlüğe eklenir ve en son karakterden devam edilir.

Müsvedde kod (pseudo code) olarak aşağıdaki şekilde yazılabilir:

  • Metinden bir harf al
  • Sözlükte harfi ara
  • Metindeki sıradaki harfi aldığında sözlükteki bir kayda karşılık geliyorsa metinden harf almaya devam et
  • Şimdiye kadar uyan sözlük değerini sonuca bas
  • Uyumu bozan yeni harfle birlikte şimdiye kadar uyan sözlük kaydını, yeni sözlük kaydı olarak ekle
  • Metin bitmediyse 2. Adımdan uymayan bu yeni harf ile devam et.

Elimizdeki karakter dizisi “aaab” olsun. İçi başta boş olan bir W karakter dizimiz olsun.

  • “a” karakter dizisi sözlükte mevcut o yüzden es geçildi.
  • Bir sonraki karakter ‘a’ ve W’ye eklendi. “aa” sözlükte mevcut değil o yüzden yeni eleman olarak eklendi. Bir yandan da “a” karakter dizisi sonuca eklendi. W’ye de son eleman olan “a” atandı.
  • Bir sonraki karakter olan “a”, W’ye eklendi. Fakat “aa” artık sözlükte o yüzden es geçiyoruz. Sonraki karakter olan “b”, W’ye ekleniyor. Oluşan “aab” sözlükte mevcut değil ve yeni eleman olarak ekleniyor. “aa” sonuca eklenirken son eleman olan “b” W’ye atandı.
  • Bu aşamada karakter dizimiz bitti W’de kalan son karakteri de sonuca ekliyoruz.

 2022 Mart 08 Salı
 420