Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
NİŞANTAŞI ÜNİVERSİTESİ
Veri Yapıları ve Algoritmalar DERS 1 NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr
2
YBLG202 Veri Yapıları ve Algoritmalar
DERS 1 ALGORİTMALAR, ZAMAN KARMAŞIKLIĞI NİŞANTAŞI ÜNİVERSİTESİ ©
3
AlgoritmaLAR, Zaman KarmaşıklıĞI
Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir yöntemdir. (V. Nabiyev). Problemin çözümü için yapılması gereken işlemleri adım adım ve sırasıyla açıklar. Algoritmalar, herhangi programlama diline bağımlı değildir. Bu nedenle Pseudo Code olarak yazılırlar. Algoritmayı tanımlamak veya veriler arasındaki ilişkileri göstermek amacıyla kabul görmüş standartlar; o Kaba-kod ile tanımlama o Akış şeması o N-S (Nassi-Schnederman) şemaları Pseudo Code, herhangi programlama dili için geçersiz, ancak konuşma diline yakın, işlemleri açıkça tanımlayan komutlar olarak tanımlanabilir. NİŞANTAŞI ÜNİVERSİTESİ ©
4
AlgoritmaLAR, Zaman KarmaşıklıĞI
Akış Şemaları Akış şeması, algoritmanın görsel/şekilsel olarak ortaya konulmasıdır; problemin çözümü için yapılması gerekenleri başından sonuna kadar geometrik şekillerden oluşan simgelerle gösterir. Her simge genel olarak yapılacak bir işi veya komutu gösterir. NİŞANTAŞI ÜNİVERSİTESİ ©
5
AlgoritmaLAR, Zaman KarmaşıklıĞI
N-S(Nassi-Schnederman) Şemaları Bu yapıda gösterimlerim tamamı bir dikdörtgen içine yapılır. Program akışı en üstten başlar ve aşağıya doğru ilerler. Dikdörtgenler kendi içerisinde, karşılaştırma işlemleri sonucu parçalara ayrılabilmektedir. N-S şeması, doğrudan yapısal tabanlı program tasarımı için uygundur denilebilir; herhangi bir noktadan uzaktaki bir program satırına dallanma yapacak goto benzeri bir davranışın karşılığı bir yapı yoktur. Dolayısıyla C gibi yapısal programlama dilleriyle tasarlanacak programların ön tasarımında kullanılabilir. NİŞANTAŞI ÜNİVERSİTESİ ©
6
AlgoritmaLAR, Zaman KarmaşıklıĞI
N-S(Nassi-Schnederman) Şemaları NİŞANTAŞI ÜNİVERSİTESİ ©
7
AlgoritmaLAR, Zaman KarmaşıklıĞI
Algoritma Karmaşıklığı X'in bir algoritma, n'nin girdi verisinin boyutu olduğunu, X algoritması tarafından kullanılan zaman ve bellek alanının X'in verimliliğini belirleyen iki ana faktör olduğunu varsayalım. Zaman Faktörü - Zaman, kilit işlem sayısını sayarak ölçülür. Bellek Alanı Faktörü - Alan, algoritma tarafından gerekli olan maksimum bellek alanını sayarak ölçülür Bir algoritmanın karmaşıklığı f (n), çalışma süresini ve / veya depolama alanını verir. algoritma tarafından girilen verinin boyutu n cinsinden verilir. NİŞANTAŞI ÜNİVERSİTESİ ©
8
AlgoritmaLAR, Zaman KarmaşıklıĞI
Alan Karmaşıklığı Bir algoritmanın alan karmaşıklığı, algoritmanın ömrü boyunca gerekli olan bellek alanının miktarını temsil eder. Bir algoritma tarafından gerekli alan aşağıdaki iki bileşenin toplamına eşittir Sorunun boyutundan bağımsız olarak belirli verileri ve değişkenleri depolamak için gereken alan olan sabit bir parça. Örneğin, kullanılan basit değişkenler ve sabitler, program boyutu, vb. Değişken bölüm, boyutunun sorunun boyutuna bağlı olduğu değişkenlerin gerektirdiği boşluktur. Örneğin, dinamik bellek ayırma, özyinelemeli yığın alanı vb. Herhangi bir algoritmasının (P) uzay karmaşıklığı S (P), S (P) = C + SP (I), burada C sabit kısımdır ve S örnekteki karakteristik I'e bağlı olan algoritmanın bir parçası. NİŞANTAŞI ÜNİVERSİTESİ ©
9
AlgoritmaLAR, Zaman KarmaşıklıĞI
Bir algoritmanın zaman karmaşıklığı, algoritmanın tamamlanması için gerekli süreyi temsil eder. Zaman gereksinimleri, her adımın sabit bir süre kullanması koşuluyla, T (n) basamak sayısı olarak ölçülebilen sayısal bir fonksiyon T (n) olarak tanımlanabilir. Örneğin, iki n-bitlik tam sayı eklenmesi, n basamak alır. Sonuç olarak toplam hesaplama zamanı T (n) = c * n 'dir, burada c iki bit eklenmesi için gereken zamandır. Burada, girdi boyutu arttıkça T (n) 'nin doğrusal olarak büyüdüğünü gözlemliyoruz. Genellikle, bir algoritmanın gerektirdiği süre üç durum için ele alınır En İyi Durum - Program yürütülmesi için gereken minimum süre. Ortalama Vaka - Program yürütülmesi için gerekli olan ortalama süre. En Kötü Durum - Program yürütülmesi için gereken maksimum süre. NİŞANTAŞI ÜNİVERSİTESİ ©
10
AlgoritmaLAR, Zaman KarmaşıklıĞI
Asimtotik Yaklaşım Bir algoritmanın çalışma süresi karmaşıklığını hesaplamak için sıklıkla kullanılan asimtotik gösterimler aşağıda belirtilmiştir. Ο Gösterim Ω Gösterim θ Gösterimi NİŞANTAŞI ÜNİVERSİTESİ ©
11
AlgoritmaLAR, Zaman KarmaşıklıĞI
«Big O(N)» Gösterimi Ο (n) gösterimi bir algoritmanın çalışma süresinin üst sınırını ifade etmenin resmi yoludur. En kötü durum zaman karmaşıklığını veya bir algoritmanın tamamlanması için muhtemel en uzun süreyi ölçer. NİŞANTAŞI ÜNİVERSİTESİ ©
12
YBLG202 Veri Yapıları ve Algoritmalar
Kaynakça NİŞANTAŞI ÜNİVERSİTESİ ©
13
NİŞANTAŞI ÜNİVERSİTESİ ©
KAYNAKÇA M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc., 2011 Hakan Kutucu, VERİ YAPILARI, Karabük Üniversitesi Mühendislik fakültesi, 2014 Data Structures and Algorithms, TutorialPoints, NİŞANTAŞI ÜNİVERSİTESİ ©
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.