Uploaded by Nurgül Aykaş

Alg. Tasarım1

advertisement
BÖLÜM 1
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
Algoritmaların Hesaplamadaki
Rolü
 Algoritma nedir?
 Algoritmaları çalışmak neden faydalıdır?
 Bilgisayarlarda kullanılan diğer teknolojilere göre
algoritmaların rolü nedir?
 Bu bölümde bu soruları cevaplayacağız.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
2
Algoritmalar
 Algoritma, girdi olarak bir değer ya da değerler kümesi
alan ve çıktı olarak bir değer ya da değerler kümesi üreten
herhangi bir iyi tanımlanmış işlemsel prosedürdür.
Dolayısıyla, algoritma girdiyi çıktıya dönüştüren işlemsel
adımlar dizisidir.
 Algoritma, iyi tanımlanmış işlemsel bir problemi çözmek
için bir araçtır. Problemin açıklamaları istenen girdi ve
çıktıların genel koşullarını belirler.
 Örneğin, bir dizi sayının artan sırada sıralanması
istenebilir. Bu problemle pratikte çok karşılaşılır ve pek çok
tasarım tekniği ile analiz araçlarının geliştirilmesine zengin
bir temel oluşturur.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
3
Sıralama problemi
 Girdi: n adet bir dizi sayı (a1,a2,a3,…,an).
 Çıktı:giriş dizisinin a1’≤a2’≤a3’≤ … ≤ an’ olacak şekilde
permütasyonu (sıralama) (a1’,a2’,a3’,…,an’)
 Örneğin, (31,41,59,26,41,58) giriş dizisine göre bir
sıralama algoritması (26,31,41,41,58,59) çıkış dizisini
döndürür. Böyle bir giriş dizisine sıralama
probleminin örneği (instance) denir.
 Sıralama probleminin örneği, problem ifadesindeki
tüm kısıtları sağlar.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
4
Algoritma
 Bir algoritma, eğer tüm giriş örnekleri için doğru
çıkışı üretiyorsa doğrudur denir. Doğru bir algoritma
verilen işlemsel problemi çözer.
 Yanlış algoritma tüm giriş örnekleri için doğru çıkışı
üretmeyebilir ya da hiç doğru sonuç üretmeyebilir.
Beklenilenin aksine, eğer hata oranlarını kontrol
edebiliyorsak yanlış algoritmalar da bazen faydalı
olabilir.
 Büyük asal sayıların bulunması: hata oranı kontrol
edilebilir bir algoritma (Bölüm 31)
 Fakat biz doğru algoritmalar ile ilgileniyor olacağız.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
5
Algoritma
 Bir algoritma
 Türkçe/İngilizce olarak bir konuşma diliyle
 Bilgisayar programıyla
 Donanım tasarımıyla
tanımlanabilir.
 Tek gereksinim, takip edilecek işlemsel prosedürün
kesin/hatasız olarak tanımlanmış olmasıdır.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
6
Algoritma
 Ne tür problemler algoritmalar ile çözülür?
 Sıralama elbette algoritmaların geliştirildiği tek problem
değil.
 Human Genome Project:




İnsan DNA’sındaki 100000 genin tanımlanması
İnsan DNA’sını oluşturan 3milyar kimyasal baz çifti dizilerinin
belirlenmesi
Bu bilginin veritabanında tutulması
Veri analizi için araçlar geliştirilmesi
Tüm bu adımlar karmaşık algoritmalar gerektiriyor. Bu tür
biyolojik problemleri çözmek için kitapta pek çok yöntem var
(kapsamımız dışında). Amaç, kaynakları en etkin kullanarak
görevlerin üstesinden gelmek. Kazanımlar, zaman (insan ve
makine), para, laboratuar tekniklerinden çıkarılacak daha
fazla bilgi.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
7
Algoritma
 İnternet

Tüm dünyada insanların çok büyük miktarlarda veriyi edinmelerini ve bu veriye hızlı erişimlerini
sağlıyor.

Zeki algoritmalar yardımıyla internet siteleri büyük hacimlerdeki veriyi işleyebiliyor ve yönetebiliyor.
Örneğin,
 Verinin izleyeceği en iyi rotanın bulunması
 Özel bilgilerin yer aldığı sayfaları hızlıca bulan arama motorları
 Elektronik ticaret

Kişisel bilgilerin (kredi kartı numarası, şifre, faturalar) mahremiyeti

Sayısal algoritmalar ve sayı teorisi tabanlı teknolojiler
 Kriptoloji
 Dijital imza
 Üretim veya diğer ticari girişimler

Kısıtlı kaynakları en etkin şekilde tahsis etmek

Bir petrol şirketi, beklenen karını maksimize etmek için tesisini nereye kuracağını bilmek isteyebilir.

Bir siyasi aday, seçimi kazanma şansını maksimize edecek kampanya reklamları satın alarak nereye
para harcayacağına karar vermek isteyebilir.

Bir uçuş firması, her uçuşu kapsayan ve mürettebatla ilgili tüm yasal düzenlemelere uygun olacak
şekilde mürettebatı seferlere en az maliyetli olarak atamak isteyebilir.

Bir internet servis sağlayıcı, müşterilerine daha etkin bir hizmet sunabilmek için ek kaynaklarını
nereye yerleştirmesi gerektiğini bilmek isteyebilir.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
8
Algoritma
 Tüm bu örnekler lineer programlama (Bölüm 29) ile çözülebilecek problem örnekleridir.
 Bu problemler (bazıları kapsamımız dışında) ve başka özel problemlerin nasıl çözüleceği
anlatılacaktır. Örneğin,
 Komşu çiftler arasındaki mesafelerin üzerinde işaretli olduğu bir yol haritası olsun. Bir
noktadan diğerine giden en kısa rotanın bulunması isteniyor. muhtemel tüm rotalar çok
fazla olabilir. En kısa rotayı nasıl seçebiliriz? Burada yol haritası bir graf olarak
modellenecek ve grafta bir noktadan diğerine giden en kısa yol bulunacak. Çözümü Bölüm
24’de anlatılacak.
 İki adet X=(x1,x2,…,xm) ve Y=(y1,y2,…,yn) şeklinde sıralı dizi verilmiş olsun. X ve Y deki ortak
en uzun dizinin bulunması isteniyor. X’in alt dizisi, X’den bazı elemanların çıkarıldığında
kaln X dizisidir. Örneğin, (A,B,C,D,E,F,G)’nin alt dizisi (B,C,E,G) olabilir. X ve Y’nin en
uzun ortak alt dizilerinin uzunluğu iki dizinin birbirine ne kadar benzediğinin bir
ölçüsüdür. Örneğin, eğer iki dizi DNA zincirinin baz çiftleri ise ve uzun bir ortak alt
dizileri varsa bu dizileri benzer olarak düşünebiliriz. X’in m adet sembolü, Y’nin n adet
sembolü varsa X ve Y’nin 2m ve 2n muhtemel alt dizisi vardır. X ve Y’nin muhtemel tüm alt
dizilerinin seçimi ve bunların eşleştirilmesi aşırı fazla zaman alabilir, m ve n küçük
olmadığı sürece. Bu problemin mümkün olduğunca etkin şekilde çözümü için dinamik
programlama olarak bilinen genel bir tekniğin nasıl kullanılacağını Bölüm 15’de göreceğiz.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
9
Algoritma
 Bölümler kütüphanesi ile ilgili mekanik bir tasarım problemi
verilmiş olsun. Öyle ki, her bölümde diğer bölümlerin örnekleri
olabilir. Bölümlerin, her bölüm onu kullanan bölümden önce
görülecek şekilde listelenmesi isteniyor. Örneğin, kütüphanede
bilgisayar mühendisliğine ait kitapların olduğu bölümü
düşünelim. Bilgisayar mühendisliği kitaplarının içinde elektrik
elektronik kitapları da olabilir. Bu durumda elektrik elektronik
kitaplarının bölümü, onu kullanan bilgisayar mühendisliği
bölümünün önüne yerleştirilmelidir. Eğer tasarımda n adet
bölüm varsa n! Muhtemel sıra vardır. Faktöriyel, üstel
fonksiyondan bile daha hızlı artan bir fonksiyon olduğundan
muhtemel tüm sıralamaları üretip, bunların belirtilen kısıt
bakımından sağlamasının yapılması mümkün değildir (az bölüm
olduğu durum hariç). Bu problem, bir topolojik sıralama
örneğidir ve bunun etkin çözümü Bölüm 22’de anlatılacaktır.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
10
Algoritma
 Pek çok ilginç algoritmik problemin ortak iki özelliği:
 Pek çok aday çözüm var; fakat çok büyük bir kısmı eldeki problemi çözemiyor. Çözebilen,
en iyi çözebilen algoritmanın bulunması oldukça zor olabiliyor.
 Pratik uygulamaları vardır. Bahsedilen problemler içinde en kolay problem en kısa yolun
bulunması problemi. Bir ulaşım firması, örneğin bir kamyonculuk ya da bir demiryolu
şirketi, bir yol ya da ray ağı üzerindeki en kısa yolu bularak kendine ekonomik kar
sağlayabilir. Çünkü daha az işçi ve daha az yakıt kullanılacak. İnternet üzerindeki bir
yönlendirme düğümü ağ üzerindeki en kısa yolu bularak mesajı hızlıca yönlendirebilir. Ya
da New York’dan Boston’a gitmek isteyen biri web sayfasından uygun sürüş
yönlendirmelerini bulmak isteyebilir, ya da sürüşü esnasında GPS kullanabilir.
 Algoritmalarla çözülen problemlerin hepsinin kolayca tanımlanmış aday sonuç kümeleri
yok. Örneğin, bir sinyalin örneklerini gösteren sayısal değerler kümesi verilmiş olsun ve
biz bu sinyallerin ayrık Fourier dönüşümlerini yapmak isteyelim. Ayrık Fourier
dönüşümü zaman domeninden frekans domenine dönüştürür, örneklenen sinyaldeki
değişik frekansların gücüne karar verebileceğimiz bir dizi sayısal katsayı üretir. Sinyal
işlemenin kalbi olmasının yanında, ayrık Fourier dönüşümünün veri sıkıştırma ve büyük
polinomlarla tamsayıların çarpılmasında da uygulamaları vardır.Bölüm 30’da bu problem
için etkili bir çözüm olan hızlı Fourier dönüşümü anlatılacaktır.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
11
Veri Yapıları
 Veri yapısı: veriye erişim ve üzerinde değişim yapmayı
kolaylaştıracak şekilde veriyi depolama ve düzenleme
yolu.
 Tüm amaçlar için iyi çalışacak tek bir veri yapısı yok.
 Dolayısıyla, veri yapılarının kısıtlarını ve güçlerini
bilmek önemli.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
12
Teknik
 Kendi algoritmalarınızı geliştirebileceğiniz algoritma
tasarımı ve analizi yöntemleri, bunların ispatları ve
etkinlikleri anlatılacak
 Farklı bölümlerde algoritmik problem çözümlerinin
farklı açıları hedefleniyor. Örneğin,
 Medyan bulma ve sıra istatistiği Bölüm 9
 Minimum yayılım ağaçlarının hesaplanması Bölüm23
 Ağdaki maksimum akışın belirlenmesi Bölüm 26
 Böl ve yönet Bölüm 4
 Dinamik programlama Bölüm 15
…
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
13
Zor problemler
 Kitabın çoğu etkin algoritmalarla alakalı. Etkinlik ölçütü ise hız. Yani, bir
algoritmanın sonucunu üretmesine kadar geçen süre. Fakat öyle problemler var
ki etkin çözümü yok. Bölüm 34’de böyle problemlerin bir alt kümesi çalışılmış
ve bunlara NP-complete (nondeterministic polynomial time) deniyor.
 Neden NP-complete problemler ilginç?
 Öncelikle, NP-complete problemler için etkin bir algoritma şu ana kadar
bulunamamış, kimse bu problemler için etkin bir algoritma olamayacağını ispat
edememiş. Başka bir deyişle, hiç kimse NP-complete problemler için etkin bir
algoritma olup olmadığını bilmiyor.
 İkincisi, NP-complete problemler kümesinin çok önemli bir özelliği var: eğer
herhangi bir NP-complete problem için etkin bir algoritma varsa tüm NPcomplete problemler için bir algoritma var demektir.
 Üçüncüsü, birçok NP-complete problem etkin algoritmalarını bildiğimiz
problemlere benzer, fakat aynı değil. Bilgisayar bilimcilerin kafası karışık:

Problem ifadesindeki küçük bir değişim, en iyi bilinen algoritmanın etkinliğinde
büyük bir değişime sebep olur?
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
14
Zor problemler
 Bir örnek:
 Merkezi bir deposu olan bir dağıtım firması düşünün. Her
gün depodaki sevkiyatı kamyona yüklüyor ve ürünleri ilgili
adreslere dağıtmak üzere etrafa yolluyor. Günün sonunda her
bir kamyon ertesi gün tekrar sevkiyata çıkmak üzere depoya
gelmek zorunda. Maliyeti azaltmak için firma, her kamyonu
en az yolculuk yaptıracak dağıtım duraklarını seçmek istiyor.
Bu problem, çok iyi bilinen traveling-salesman problemidir ve
bir NP-complete’dir. Bilinen etkin bir algoritması yoktur.
Fakat, bazı varsayımlarla mümkün olan en az mesafeden çok
da uzak olmayan toplam mesafeyi veren etkili algoritmalar
var. Bölüm 35 böyle “yaklaşım algoritmaları” nı anlatıyor.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
15
Paralellik
 Güç yoğunluğu saat hızı (clock rate) ile süper lineer orantılı olarak artar





ve saat hızı yeterince yüksek olduğunda çipler erime riskiyle karşı
karşıya kalır.
Dolayısıyla, saniyede daha fazla hesaplama yaptırabilmek için çipler
sadece bir tane değil, birkaç işlemci çekirdeği (core) içerecek şekilde
tasarlanır.
Çok çekirdekli bilgisayarlar ≈ardışık birkaç tek çipli bilgisayar
Bir tür “paralel bilgisayar”.
Çok çekirdekli bilgisayarlardan en iyi performansı alabilmek için
paralelliği akılda tutarak algoritma geliştirilmelidir.
Bölüm 27 çok çekirdekliliğin avantajını kullanan “multithreaded” (çok
iş parçacıklı) bir algoritma modeli sunuyor. Bu model teorik açıdan
avantajlı ve “satranç şampiyonası” programı gibi başarılı birkaç
bilgisayar programına da temel teşkil ediyor.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
16
Alıştırma
 Sıralama gerektiren gerçek dünya örneği?
 Gerçek dünya ortamında hızdan başka ne gibi etkinlik
ölçütleri var?
 Daha önceden bildiğiniz bir veri yapısı seçip bunun
güçlü yanlarını ve kısıtlarını tartışınız.
 En kısa yol ve traveling-salesman problemleri nasıl
benzerler? Nasıl farklılar?
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
17
Teknoloji olarak algoritmalar
 Bilgisayarların sonsuz hızlı olduğunu ve bilgisayar
hafızasının bedava olduğunu varsayalım. Bu durumda
algoritmaları çalışmamız için bir sebep var mı?
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
18
Teknoloji olarak algoritmalar
 Evet. Eğer sonlanan ve doğru cevap üreten bir çözüm istiyorsak




algoritmalar çalışılmalı.
Eğer bilgisayarlar sonsuz hızlı olsaydı herhangi doğru bir yöntem
problemi çözebilirdi.
Hemen herkes gerçekleştirdiği uygulamanın iyi bir yazılım
mühendisliği çerçevesinde olmasını ister. Yani, iyi tasarlanmış ve
dökümantasyonu sağlam uygulamalar geliştirmek ister. Ama
çoğu zaman uygulaması en kolay yöntem kullanılır.
Elbette bilgisayarlar hızlı olabilir, ama sonsuz hızlı değiller.
Hafıza ucuz olabilir, ama bedava değil. Dolayısıyla, hesaplama
süresi sınırlı bir kaynak. Hafızada kaplanan alan da.
Kaynaklar akıllıca kullanılmalı. Bunun için de algoritmalar
zaman ya da alan bakımından etkin olmalı.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
19
Verim (Etkinlik)
 Aynı problemi çözmek için verimleri önemli ölçüde değişen farklı
algoritmalar icat edilmiş. Bu farklılıklar yazılım ya da donanım kaynaklı
farklılıklardan çok daha önemli olabilmekte.
 Örneğin, Bölüm 2’de sıralama için 2 algoritma var. Birincisi insertion
sort (yerleştirmeli sıralama) ve n adet elemanın sıralanması c1n2 (c1:
n’den bağımsız bir sabit) süre alıyor . Kabaca n2 ile orantılı zaman
alıyor. İkincisi merge sort (birleştirerek sıralama) ve c2nlog2n zaman
alıyor (c2: n’den bağımsız bir sabit). Çoğu zaman c1< c2 .




insertion sort: c1n.n (n’nin bir çarpanı)
merge sort: c2n.log2n (log2n’nin bir çarpanı) (dahaküçük)
n=1000➩log2n=10, n=1000000➩log2n≈20
Buna rağmen insertion sort küçük giriş boyutu için genelde merge sorta
göre daha hızlı çalışıyor. n yeterince büyüdüğünde merge sort’un logn-n
avantajı, sabit faktörler arasındaki farkın önüne geçer. c1 c2‘den ne
kadar küçük olursa olsun merge sort’un daha hızlı olduğu bir geçiş
noktası her zaman vardır.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
20
Örnek:
 10.000.000 adet sayı içeren dizi sıralanacak.
 10.000.000 çokmuş gibi görünse de sayıların 8 bayt tamsayı olduğu varsayılırsa
giriş 80 megabayt yer kaplar ve bu da ucuz bir diz üstü bilgisayarın hafızasının
çok çok altındadır.
 A Bilgisayarı :
 daha hızlı
 insertion sort
 Saniyede 10 milyar komut çalıştırıyor (anormal bir rakam!)
 Dünyanın en hünerli programcısı insertion sort’u makine diliyle
programlıyor ve sonuç kodlar 2n2 komut gerektiriyor (n sayı için)
 B Bilgisayarı :
 daha yavaş
 merge sort
 Saniyede 10 milyon komut çalıştırıyor (1000 kat yavaş)
 Ortalama bir programcı yüksek seviyeli bir dil ve verimsiz bir derleyici
kullanarak merge sort’u kodluyor ve sonuç kodlar 50nlogn komut alıyor
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
21
Örnek: (Devam)
 10 milyon sayının sıralanması için:
 A Bilgisayarı
 B Bilgisayarı
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
22
Örnek: (Devam)
 Run time’ı daha yavaş artan bir algoritma
kullanmak, çok zayıf bir derleyicisi olan B bilgisayarını
bile A bilgisayarından 17 kat daha hızlı yaptı!
 100 milyon sayı sıralanırken merge sort’un avantajı
daha da büyüyecek.
 İnsertion sort: 23 gün
 Merge sort: <4 saat
 Problemin boyutu arttıkça merge sort’un avantajı da
artacak.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
23
Algoritmalar ve diğer teknolojiler
 Bahsedilen örnekler, bir bilgisayar donanımı gibi algoritmaları da
teknoloji olarak düşünmemiz gerektiğini gösteriyor.
 Genel sistem performansı seçilen hızlı donanım kadar tercih edilen
etkin algoritmalara da bağlı.
 Diğer bilgisayar teknolojilerinde hızlı ilerlemeler olduğu gibi
algoritmalarda da her geçen gün ilerlemeler kaydedilmektedir.
 Algoritmalar





Gelişmiş bilgisayar mimarileri ve üretim teknolojileri
Kullanımı kolay, sezgisel, grafik kullanıcı arayüzleri (GUI)
Nesneye dayalı sistemler
Gömülü Web teknolojileri
Kablolu ve kablosuz hızlı haberleşme
gibi gelişmiş modern bilgisayar teknolojileri kadar gerçekten önemli
mi?
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
24
Algoritmalar ve diğer teknolojiler
 Cevap: evet!
 Bazı uygulamalar (basit Web tabanlı uygulamalar) açıkça
uygulama katmanında algoritmik içerik gerektirmiyor olsa
da pek çoğu gerektiriyor.
 Örneğin, bir noktadan diğerine nasıl gidileceğine karar
veren Web tabanlı bir servis düşünün. Uygulama hızlı bir
donanım, GUI, WAN ile belki de nesne yönelimli olarak
gerçeklenmeli. Fakat, aynı zamanda rota bulma (belki en
kısa mesafe algoritmasını kullanarak), harita gösterimi ve
adres ekleme gibi belli başlı operasyonlar için de
algoritmalar gerektirebilir.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
25
Algoritmalar ve diğer teknolojiler
 Dahası, uygulama seviyesinde algoritmik içerik
gerektirmeyen uygulamalar bile büyük ölçüde
algoritmalara dayanır. Uygulama hızlı bir donanım istiyor
mu? Donanım tasarımı algoritmaları kullanır. GUI olacak
mı? Herhangi bir GUI tasarımı algoritmalara
dayanır.haberleşme olacak mı? Ağdaki yönlendirme çok
büyük oranda algoritmalara dayanır. Uygulama makine
koduyla değil de bir dil ile mi yazıldı? Daha sonra derleyici
(compiler), yorumlayıcı (interpreter) ya da çevirici
(assembler) tarafından işlenecek ve buralarda algoritmalar
fazlaca kullanılıyor.
 Modern bilgisayarlarda kullanılan teknolojilerin çoğunun
temelinde algoritmalar var.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
26
Algoritmalar ve diğer teknolojiler
 Ayrıca, giderek artan bilgisayar kapasiteleri ile geçmiş
problemlerden daha büyük problemleri de çözmek için
kullanabiliriz. Önceki örnekte gördüğümüz gibi insertion
sort ve merge sort’u karşılaştırırken, daha büyük problem
boyutları algoritmalar arasındaki etkinliği daha da
belirginleştiriyor.
 Sağlam bir algoritmik bilgi ve tekniğe sahip olmak iyi
donanımlı bir programcıyı diğerlerinden ayıran
özelliklerden biridir.
 Modern hesaplama teknolojisi ile algoritmalar hakkında
çok fazla şey bilmeden bazı işler başarılabilir; fakat
algoritmalar konusunda iyi bir geçmişe sahipseniz çok daha
fazlasını yapabilirsiniz.
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
27
Alıştırma
 Uygulama seviyesinde algoritmik içerik gerektiren bir
uygulama örneği vererek içerilen algoritmaların
işlevini tartışınız.
 Aynı makine üzerinde insertion sort ve merge sort’un
uygulamalarını karşılaştırdığımızı varsayın. n giriş
boyutu için, merge sort 64nlgn adım çalışırken
insertion sort 8n2 adım çalışıyor. n‘nin hangi değerleri
için insertion sort merge sort’u geçer?
 Aynı makine üzerinde uygulama zamanı (run time)
100n2 olan bir algoritmayı uygulama zamanı 2n olan bir
algoritmadan daha hızlı yapacak en küçük n kaçtır?
Dr. Öğr. Ü. Zehra KARAPINAR ŞENTÜRK
28
Download