Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Genel Programlama

Cevapla
 
LinkBack Seçenekler
Eski 24/05/2005, 20:02   #1 (permalink)
Üye
 
eindoforat Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 16
Varsayılan Big O

Arkadaslar algoritmada verimlilik ile ilgili bilgilere ihtiyacim var."Big O" diye bisey varmıs ve bu konuyla ilgiliymiş.Big O yada algoritmada verimlilik ile ilgili bana onerebileceginiz siteler yada mevcut dokumanlar var mi?
eindoforat hatta değil   Alıntı Yaparak Yanıtla
Eski 25/05/2005, 14:03   #2 (permalink)
İptal Durumu
 
Euclides Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2004
Yer: M86
Mesaj: 1,092
Varsayılan

Bir diznin büyüme hızı...
n = bir doğal sayı(sabit)
z = tam sayı (değişken)
Doğal sayılar < log(Z) < N*Z < Z^N < N^Z < Z^Z

Sonsuza ulaşma hızla böyle bir şeydi (sıralama yanlış olabilir.. ?? )
Euclides hatta değil   Alıntı Yaparak Yanıtla
Eski 26/05/2005, 05:28   #3 (permalink)
Eski Cevizci
 
Üyelik Tarihi: 04/2005
Mesaj: 343
Varsayılan

Big O matematikte fonksiyonlarin asymptotic davranislarini tanimlamak icin kullanilan bir notasyon sadece. Bilgisayar bilimindeki kullanim alani ise algoritmalarin analizi. Matematikten bir ornek verirsek diyelim ki f(x) = 3x^5 + 2x^2 ve g(x) = x^5 gibi iki polynomials olsun. Bu durumda f(x) has order O(g(x)) yada O(x^5) diyebiliriz. Nedeni x buyudukce f(x) in diger terimlerinin ve sabitlerin x^5 a oranla cok kucuk kalacaklari icin ihmal edilebilecek olmasi. Bunu algoritmalara uygularsak y = x + 1; gibi bir aritmetik islemin execute edilmesi icin gecen zamanin sabit olacagini kabul edebilir ve 1 zaman unit diyebiliriz. Big O notasyonu ile kisaca O(1). Eger
int y = 0;
int c = 0;
for(int i = 0; i < n; i++)
{
for(int j = 0; j <n j++)
{
y = y + 1;
}
c = c + 1;
}
gibi bir donguyu ele alirsak y = y + 1; n^2 kere calisacak ve c = c+ 1; n kere calisacak demektir yani O(n^2 + n) fakat n ihmal edilebilecegi icin O(n^2). Burdanda T(n) E O(n^2) yani bu algoritmanin time kompleksligi n^2 dir diyebiliriz.
Tabii boyle bir analiz cok kesin bir olcum degil yinede diyelim ki yazdigim bir programda bir searching algoritmasi kullanmak istersem lineer search algortmasi gibi O(n) ile binary search gibi O(logN) iki algortma arasinda bir tercih yapmama oldukca yardimci olabilir.

Enson 26/05/2005 11:26 tarihinde Sabahi tarafından düzenlenmiştir..
Sabahi hatta değil   Alıntı Yaparak Yanıtla
Eski 26/05/2005, 07:32   #4 (permalink)
Eski Cevizci
 
myavuzselim Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2004
Mesaj: 792
Varsayılan

Fakat burada n'in ne ifade ettigini unutmamak gerek. Yukaridaki ornekte int n'deki n ile O(n^2)'daki n ayni degil. Sabahi algoritmanin n=10 oldugu bir durumunu ornek olarak vermis.

Eger oyle olmasaydi yukaridaki algoritmaya da sabit derdik, cunku her zaman ayni surede tamamlanirdi.
Biraz kafa karistirici oldu galiba, soyle yapalim:

PHP Kodu:
int oylesineBirsey(int n) {
    
int x=0;
    for(
int i 0ni++) {
        for(
int j 0nj++) {
            
x++;
        }
     }
    return 
x;

Yukaridaki algoritma verilen n degerine gore O(n^2).

PHP Kodu:
int baskaBirsey(int mint n) {
    
int x 0;
    for(
int i=0i<mi++) {
        for(
int j=0j<1000000j++) {
            for(
int k=0k<nk++) {
                
x++;
            }
        }
    }
    return 
x;

Yukaridaki algoritma O(m*n). Ortadaki dongunun karmasikliga bir etkisi yok, cunku her zaman ayni sayida isletilecek (Bu demek degildir ki bu algoritmamizi yavaslatmiyor. Aslinda algoritma yaklasik 1000000 defa yavasliyor)

Enson 26/05/2005 08:04 tarihinde myavuzselim tarafından düzenlenmiştir..
myavuzselim hatta değil   Alıntı Yaparak Yanıtla
Eski 26/05/2005, 11:33   #5 (permalink)
Eski Cevizci
 
Üyelik Tarihi: 04/2005
Mesaj: 343
Varsayılan

@myss
haklisin n yerine 10 yazmak hataydi duzelttim tesekkurler.
Sabahi hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 01:51.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net