Algoritma Geliştirme ve Veri Yapıları 6 Arama ve Sıralama Algoritmaları. Mustafa Kemal Üniversitesi
|
|
- Tolga Erkan
- 7 yıl önce
- İzleme sayısı:
Transkript
1 Algoritma Geliştirme ve Veri Yapıları 6 Arama ve Sıralama Algoritmaları
2 Arama ve sıralama algoritmaları bilişim uygulamalarında önemli bir yer tutar. Çünkü bilgiye ait verinin saklanması ve gerektiğinde bir parçası ile kalan bütününe erişilmesi veya bilginin belirli bir düzene göre sıralanması çoğu zaman ihtiyaç duyulan bir işlemdir. Arama ve sıralama algoritmaları, bu işlemlerin yanı sıra benzer mantıkta olan problemlerin çözümü konusunda da kolaylık sağlayabilmektedir.
3 Temel Kavramlar Sıralama, sayısal ortamdaki bilgilerin belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı hale getirilmesidir. Arama, bir veri kümesi içerisindeki bir bilginin varlığının belirlenmesi, yerinin bulunması veya verinin bir parçasından bütününe erişilmesi işlemdir. Arama işlemi belirli bir veya birkaç anahtar sözcüğe dayanılarak gerçekleştirilir. Kullanılan bu anahtar sözcükler iki farklı şekilde olabilir: birincil ve ikincil.
4 Temel Kavramlar Birincil Anahtar Sözcük Birincil anahtar sözcüğe göre arama yapılırsa, yalnızca bir tane sonuç bulunmalıdır. Dolayısıyla bu anahtar sözcüğe göre arama yapılıyorsa aranan bulununca geride kalan kayıtlara bakılmaksızın arama işlemi sonlandırılır. İkincil Anahtar Sözcük İkincil anahtar sözcüğe göre arama yapılırsa aranan sözcüğe en uygun birden fazla sonuç elde edilebilir; dolayısıyla ikincil anahtar sözcüğe göre arama yapan algoritmalar var olan kayıtların hepsini sınamış olmalıdır. Gerektiğinde sonuç liste üzerinde tutulmalıdır.
5 Temel Kavramlar Arama işlemi bellek üzerinde tutulan veriler üzerinde yapılıyorsa dahili, disk gibi saklama birimleri üzerinde yapılıyorsa harici arama olarak adlandırılır. Dahili Algoritma Arama veya sıralama işlemleri RAM gibi bellek üzerinde tutulan veriler üzerinden yapılır. Veriye erişim hızlı olduğu için verilerin yer değiştirilmesi, araya ekleme, aradan çıkarma gibi işlemler daha hızlı gerçekleşir. Yani verilerin bellek üzerindeki konumunun bir önemi yoktur. Harici Algoritma Arama veya sıralama işlemleri disk, yedekleme birimi gibi belleğe göre daha yavaş olan saklama birimleri üzerinde yapılır. Diske erişim belleğe göre daha yavaş olacağından verilerin yer değiştirmesi, bir veriden diğerine atlanması vs. gibi işlemlerin oldukça fazla zaman harcar. Bu nedenle de bu birimler üzerinde yapılacak işlem sırasında verilerin fazla hareket ettirilmemesi gerekmektedir.
6 1) Arama Algoritmaları Arama algoritmaları bir veri kümesi içerisinde herhangi bir parçasının varlığını arama veya bir parçası ile kalan diğer bütününü arayıp bulmak için kullanılır. Arama işleminin yapılış şekli, bilgiye ait verilerin düzenlenmesi ve bellekte tutulmasına göre farklılık gösterebilir. En yalın arama şekli, bilgiye ait verilere baştan sona kadar tek tek bakılarak yapılmasıdır(ardışıl arama). Bu yöntemde arama algoritması kolay yazılır fakat arama hızı düşüktür.
7 1) Arama Algoritmaları Arama algoritmaları 3 temel sınıfta toplanabilir; o o o Ardışıl (Doğrusal) Arama İkili Arama Çırpı (Hash) Algortiması Uygulamada çoğunlukla ikili arama algoritmaları tercih edilirken, en hızlı arama algoritması olan çırpı algoritmasının kullanılabilmesi için çatışmaların olmadığı ideal bir çırpı fonksiyonun bulunması gerekmektedir.
8 1.1-Ardışıl Arama Algoritması Tasarımı en yalın arama algoritmasıdır. Yöntem olarak ilk kayıttan son kayda kadar tüm veriler tek tek aranılan değerle karşılaştırılır. Eğer arama işlemi birincil anahtar sözcük üzerinden yapılıyorsa aranılan sonuç bulunduğunda işlem sonlandırılır. Eğer arama işlemi ikincil anahtar sözcüğe dayanılarak yapılıyorsa son kayda kadar işlem devam eder.
9 1.1-Ardışıl Arama Algoritması Ardışıl aramanın en kötü durumdaki zaman karmaşıklığı O(N) dir. Yani N kayıttan oluşan bir veri yapısında en kötü durum N çevrim yapılmasıdır(son kayıt için).
10 int ardisilarama(int A[], int N, int aranan){ int k; for(k=0;k<n;k++) /*N çevrimlik döngü*/ if(a[k]== aranan) return k; /* Aranan bulundu indisi gönder*/ return -1; /*Bulunamadı -1 gönder*/ main(){ int indis,ara,b[]={13,12,15,11,26,5,47,10,27,34; puts( Aranan Sayi: ); scanf( %d,&ara); indis= ardisilarama(b,10,ara); /*10 elemanlı dizide arama yapılıyor*/ if(indis ==1) puts( Aranan sayi bulunamadi! ); else printf( Aranan sayi %d indisli eleman\n, indis);
11 1.2-İkili Arama Algoritması İkili arama, halihazırda sıralı olan veriler üzerinde çalışan bir algoritmadır, yani verilerin önceden, belirli anahtar sözcüğe göre sıralı olmalıdır. Eğer veriler bir dizi üzerinde sıralı ise veya veriler ikili arama ağacı üzerinde tutuluyorsa ikili arama yapılabilir. İkili aramanın zaman karmaşıklığı O(log 2 N). 1 milyon kayıt içerisinde arama için gerekli çevrim sayısı log =~20. Bu yüzden kayıt sayısı fazla olan veri kümelerinde arama için idealdir(ardışıl ile en kötü durumda 1 milyon çevrim)
12 int ikiliarama(int D[], int N, int aranan){ int ortadaki, sol=0, sag=n-1; while(sol<=sag) { ortadaki=(sol+sag)/2; /* ortadaki elemanın indisi hesaplanıyor */ if(aranan == D[ortadaki]) return ortadaki; /* bulundu, indis gönderiliyor */ else if(aranan>d[ortadaki]) sol=ortadaki+1; else sag=ortadaki-1; return -1; /* bulunamaz ise -1 değeri gönderiliyor */ main(){ int indis,ara,b[]={1,2,3,4,5,6,7,8,9,10; puts( Aranan Sayi: ); scanf( %d,&ara); indis= ikiliarama(b,10,ara); /*10 elemanlı dizide arama yapılıyor*/ if(indis ==1) puts( Aranan sayi bulunamadi! ); else printf( Aranan sayi %d indisli eleman\n, indis);
13 İkili arama ağacı üzerinde arama void ikiliaramaagac(agacdugum *agac, veritürü aranan) { if(agac==null) return; /* Ağaç boş ise dön */ if(aranan==agac->anahtar) /* aranan kök düğümde ise bulundu */ yazekrana(agac); if(aranan < agac->anahtar) /* aranan hangi alt ağaçta? */ ikiliaramaagac(agac->sol); /* sol altağaca dallan */ else ikiliaramaagac(agac->sag); /* sağ altağaca dallan */
14 1.3-Çırpı Fonksiyonu Çırpı fonksiyonu arama işlemini bir çırpıda yapmak ve aranana doğrudan ulaşmak için kullanılan bir yöntemdir. Fonksiyona arama işleminde kullanılacak anahtar sözcük değeri girilir ve karşılığında bir tamsayı alınır. Bu tamsayı, indis gibi kullanılarak dizi düzeninde tutulan veriye erişilir. Zaman karşılığı idealde O(1) olur. Ancak uygulamada her zaman için ideal bir çırpı fonksiyonu bulmak veya üretmek mümkün olmadığı durumda sapmalar olmaktadır.bütünüyle bir çırpı algoritması; çırpı fonksiyonu, çırpı tablosu ve çatışmaların çözümlenmesi gibi üç ayrı parçadan oluşur. Çırpı fonksiyonu farklı anahtar sözcükler için aynı indis değerini üretiyorsa çatışma olur. Eğer çatışma oluşturmayan bir çırpı fonksiyonu bulunamıyorsa, işin çatışmalarla yürütülmesi gerekmektedir. Bu işleme çatışmaların çözümlenmesi adı verilmektedir.
15 2) Sıralama Algoritmaları Sıralama, bilgilerin/verilerin belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı duruma getirilmesidir. Sıralama işleminde bir anahtar sözcük kullanılır ve sıralamada ana unsurdur. Anahtar sözcük verinin bir parçası olabileceği gibi tamamı da olabilir. Bir sıralama algoritması için önemli unsurlar, yürütme zamanı ve gerekli bellek alanı ihtiyacıdır. Yürütme zamanı doğrudan algoritma için yazılan koda ve işlemlerin hangi ortamda yapıldığına bağlı iken, gerekli bellek alanını algoritma belirler.
16 2) Sıralama Algoritmaları Sıralama Algoritması Uygun Veri Modeli Uygunluk Araya Sokma Bağlantılı Liste, Dizi Dahili Seçmeli Dizi, Bağlantılı Liste Dahili Harici Kabarcık Dizi, Bağlantılı Liste Dahili Birleşmeli Bağlantılı Liste, Liste,Dizi Dahili Harici Kümeleme Bağlantılı Liste, Dizi Dahili Hızlı Sıralama Dizi, Ağaç Dahili
17 2.1-Araya Sokma Algoritması Bu algoritmada, sıralanacak dizinin ilk elemanı yerinde bırakılarak daha sonraki elemanlar tek tek ele alınır ve dizideki sırasına uygun yere konulur. Sıralama süreci boyunca dizi iki parça gibi düşünülür; sıralı olan ön taraf ve henüz sıralanmamış arka taraf gibi. Algoritmada, araya sokulacak elemanın yerini bulma ve geride kalanları birer kaydırma işlemi bulunmaktadır. Bir algoritmada bir eleman eklemenin zaman karmaşıklığı O(n) iken sırasız bir diziyi tamamen sıralamak için zaman karmaşıklığı O(n 2 ) olmaktadır. Algoritma harici sıralama için daha uygundur çünkü elemanların yerlerinin boşaltılması ve eleman kaydırma işlemi gerektirmektedir.
18
19 2.1-Araya Sokma Algoritması arayasokma(int D[], int N){ int i, k,ekle; for(i=0; i<n; i++){ ekle=d[i]; for(k=i-1;k>=0 && ekle<=d[k]; k--) D[k+1]=D[k]; /* boşalan düğümün bellek alanı serbest bırakılıyor */ D[k+1]=ekle; /* koy-ekle modu */
20 2.2-Seçmeli Sıralama Bu algoritmada dizinin herhangi bir ucundan başlanır. Dizinin başından başlandığı ve küçükten büyüğe doğru sıralama yapılacağı varsayılırsa algoritmanın davranışı şöyledir: o o İlk eleman alınır ve kendisi dahil en küçük eleman aranır. En küçük bulunduğu zaman ilk eleman ile yer değiştirilir. o İkinci eleman alınır ve kendisi dahil kalan elemanlar arasında ikinci küçük eleman aranır ve ikinci elemanla yer değiştirilir. Seçmeli sıralama algoritmasının en olumlu yanı, eğer herhangi bir eleman gerçek yerinde ise yer değiştirme işlemi yapılmamasıdır. Bu nedenle yarı sıralı dizilerde toplam yer değiştirme oranı daha az olur.
21 Sıralanacak Dizi: [7, 3, 5, 8, 2, 9, 4, 15, 6] Başlangıç Durumu: [7, 3, 5, 8, 2, 9, 4, 15, 6] Adım İşlem Öncesi İşlem Sonrası 1 [] [7, 3, 5, 8, 2, 9, 4, 15, 6] [2][ 3, 5, 8, 7, 9, 4, 15, 6] 2 [2][ 3, 5, 8, 7, 9, 4, 15, 6] [2, 3][ 5, 8, 7, 9, 4, 15, 6] 3 [2, 3][ 5, 8, 7, 9, 4, 15, 6] [2, 3, 4][ 8, 7, 9, 5, 15, 6] 4 [2, 3, 4][ 8, 7, 9, 5, 15, 6] [2, 3, 4, 5][ 7, 9, 8, 15, 6] 5 [2, 3, 4, 5][ 7, 9, 8, 15, 6] [2, 3, 4, 5, 6][ 9, 8, 15, 7] 6 [2, 3, 4, 5, 6][ 9, 8, 15, 7] [2, 3, 4, 5, 6, 7][ 8, 15, 9] 7 [2, 3, 4, 5, 6, 7][ 8, 15, 9] [2, 3, 4, 5, 6, 7, 8][ 15, 9] 8 [2, 3, 4, 5, 6, 7, 8][ 15, 9] [2, 3, 4, 5, 6, 7, 8, 9][15] 9 [2, 3, 4, 5, 6, 7, 8, 9][15] [2, 3, 4, 5, 6, 7, 8, 9, 15][]
22 2.2-Seçmeli Sıralama secmelisirala(int D[], int N) { int i, index, j, enkucuk; for(i=0; i<(n-1); i++) { /* dizinin başından başlanıyor */ enkucuk=d[n-1]; /* son eleman en küçük kabul ediliyor */ index=n-1; for(j=i; j<(n-1); j++) /* daha küçüğü var mı diye aranıyor */ if(d[j]<enkucuk) { enkucuk=d[j]; index=j; D[index]=D[i]; /* daha küçüğü varsa yer değiştiriliyor */ D[i]=enkucuk;
23 2.3-Kabarcık Sıralaması Bu algoritmada, sıralanacak elemanlar üzerinde bir yönden diğer yöne doğru ilerlenirken komşu iki elemanın sıraya girecek şekilde yer değiştirmesine dayanır. Yer değiştirme işleminde, komşu iki eleman karşılaştırılır; kendi aralarında uygun yer değiştirmeler yapılır. Bu işlem sıralama bitene kadar tekrarlanır. Elemanlar üzerindeki her bir dolaşma bir tane elemanın gerçek yerine oturmasını sağlar. Dolayısıyla işleme, yerine oturmayan elemanlar üzerinde devam edilir. Kabarcık sıralaması iki çevrim kullanılarak gerçeklenir; biri elemanların üzerinde hareket edilmesi, diğeri yerine oturmayan elemanların işlenmesi için. Her çevrimde bir eleman sıralı durumdaki yerine yerleştiği için ikinci çevrim her seferinde bir eksik yapılır. Kabarcık algoritmasının zaman karmaşıklığı O(n2). Eğer n tane elemandan yalnızca c tanesi sıralı değilse zaman karmaşıklığı O(cn) olur.
24 2.3-Kabarcık Sıralaması /* Kabarcık sıralama fonksiyonu */ kabarcik(int D[], int N) { int gecici, k, hareket; for(hareket=0; hareket<n-1; hareket++) { for(k=0; k<n-1-hareket; k++) if(d[k]>d[k+1]) { /* komşular karşılaştırılıyor */ gecici=d[k]; /* yer değiştirme kodu */ D[k]=D[k+1]; D[k+1]=gecici;
25 2.4-Birleşmeli Sıralama Bu sıralama böl ve yönet yaklaşımına dayanır ve dolayısıyla rekürsif tasarlanması doğasına uygundur. Sıralanması istenen küme elemanları, önce iki alt kümeye parçalanır ve fonksiyon kendisini sol alt küme ve sağ alt küme için iki kez çağırır. Parçalama işlemine, alt kümelerdeki eleman sayısı bir olana kadar devam edilir. Alt kümelerde bir tane eleman kalmış ise rekürsif çağırmalar geriye doğru çağırana dönmeye başlar ve geri dönülürken alt kümeler elemanları sıralı olacak biçimde birleştirir.
26 2.4-Birleşmeli Sıralama birlesmeli(int D[], int sol,int sag) { if(sol<sag) { int k=(sol+sag)/2; birlesmeli(d,sol,k); birlesmeli(d,k+1,k); birlestir(d, sol, k, sag); birlestir(int D[], int sol,int k,int sag){ int i,j, M[],z=0; for(i=sol,j=k+1;i<=k && j<=sag;){ if(d[i]<d[j]){m[z]=d[i]; i++; else{m[z]=d[j]; j++; z++; return M;
27
28 2.5-Kümeleme(Heap) Sıralama Kümeleme sıralamasının temeli ikili kümeleme(heap) ağacı kurulmasına dayanır. Sıralanacak elemanlar ile önce bir kümeleme ağacı oluşturulur, bu durumda kök en büyük değere sahiptir. n elemanlı bir dizi üzerinde önce kümeleme ağacı kurulur, bu anda kök en büyük değeri tutar. Bu değer dizinin son elemanı ile yer değiştirilir. Bu aşamada en büyük değere sahip olan eleman dizinin sonuna alınmış olur, daha sonra dizinin kalan(n-1) elemanı yeniden kümeleme işlemine sokulur ve en büyük ikinci değere sahip olan kök olur. Bu değer de dizinin sondan ikinci elemanı ile yer değiştirilir. Bu aşamada en büyük ikinci değer, en büyük değerin önüne yerleştirilmiş olur. Daha sonra benzer işlemler (n-2),(n-3) elemanlı dizi için yapılır ve dizi adım adım sıralanır.
29 2.5-Kümeleme(Heap) Sıralama /*Kaba kodu*/ kumelemesiramalasi(a) { Kumelemeagaciolustur(A); for(k=elemansayisi(a)-1;k>1;k--) { kok=a[0]; Kok ile A[k] yı yer değiştir; agacikumele(a,1);
30 2.6-Hızlı Sıralama Hızlı sıralama algoritması böl ve yönet mantığına dayanır; sıralanması istenen dizi belirli bir sınır değerine göre iki alt diziye ayrılır. Sınır sayısından küçük olan elemanlar bir tarafa, büyük olan elemanlar diğer tarafa toplanır. Daha sonra yine hızlı sıralama algoritması kullanılarak, bu iki alt dizinin sıralanması istenir. Örnek: A={5,9,6,7,3,1,8, Sınır değer 6 olsun. o A1={2,5,3,1 ve A2={9,7,8. o Bu diziler tekrar sınır değer seçilerek ikiye bölünür. Bu işlem dizi parçalanmayacak duruma gelene kadar devam eder. Fonksiyon 3 farklı parametre gerektirir. Biri diziyi içeren değişken, diğerleri de dizinin sıralamaya koyulacak parçasının sol ve sağ taraflarının indisi.
31 2.6-Hızlı Sıralama Algoritma ilk çağrıldığında, n elemanlı bir dizi için sol=0, sag=n-1 olur. Rekürsif çağırmalar sırasında sol değer büyürken sağ değer küçülecektir. Ne zaman ki sol değeri sağ değerden büyük olursa dizide bölünecek eleman kalmadığı anlaşılmış olur. Hızlı sıralama algoritmasının en kötü durumdaki zaman karmaşıklığı O(n 2 ) dir. Ancak ortalama zaman karmaşıklığı O(nlog 2 n) çıkmaktadır.
32 hsirala(int dizi[], int sol, int sag) { register int k, j; int ortadaki, gecici; /* Diziyi ikiye parçalama kısmı */ k=sol; j=sag; ortadaki=dizi[(sol+sag)/2)]; /* sınır değer */ do { while(dizi[k] < ortadaki && k<sag ) k++; while(ortadaki < dizi[j] && j>sol) j--; if( k<=j ) { gecici=dizi[k]; dizi[k]=dizi[j]; dizi[j]=gecici; k++; j--; while( k<=j ); /* parçalama bitti */ if( sol<j ) hsirala(dizi, sol, j); if( k<sag ) hsirala(dizi, k, sag);
33 Herhangi bir sayı seçilir ve geri kalan sayılar arasından küçük olanlar sayının soluna büyük olanlar sayının sağına getirilerek sıralama tamamlanır.
34 2.7-Turnuva Sıralaması
35 2.7-Turnuva Sıralaması
Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/
Program çalışma hızı; Belirlenen bir problemin çözümü için tasarlanan program kodunun görevini yerine getirmesi için gerekli zaman bilgisini veren bir ifadededir. Bellek Gereksinimi; Programın yürütülmesi
DetaylıVERİ YAPILARI VE PROGRAMLAMA
VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.
DetaylıAlgoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip
DetaylıYrd. Doç. Dr. Ümit ATİLA
Yrd. Doç. Dr. Ümit ATİLA Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme. Bilgisayar sistemleri için veri sıralama çok önemlidir. Sıralama işlemi, hem arama işlemlerini hem de bir grup veriyi
DetaylıYrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği
Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne
DetaylıBLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları
BLM-112 PROGRAMLAMA DİLLERİ II Ders-7 Sıralama Algoritmaları Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Sıralama Bir grup veriyi azalan veya artan şekilde yerleştirme.
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 6 Sıralama(Sort) Algoritmaları 1. Bubble Sort
DetaylıAlıştırma 1: Yineleme
Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:
DetaylıYZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI
YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna
DetaylıF(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);
2009-2010 BAHAR DÖNEMİ MC 689 ALGORİTMA TASARIMI ve ANALİZİ I. VİZE ÇÖZÜMLERİ 1. a) Böl ve yönet (divide & conquer) tarzındaki algoritmaların genel özelliklerini (çalışma mantıklarını) ve aşamalarını kısaca
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini
DetaylıELN1002 BİLGİSAYAR PROGRAMLAMA 2
ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion
DetaylıBIL222 Veri Yapıları ve Algoritmalar
BIL222 Veri Yapıları ve Algoritmalar 1. ĠKĠLĠ AĞAÇLAR (BIARY TREES) Bütün düğümlerinin derecesi en fazla iki olan ağaca ikili ağaç denir. Yani bir düğüme en fazla iki tane düğüm bağlanabilir ( çocuk sayısı
DetaylıAlgoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1
Algoritmalar Heap Sort Bahar 2017 Doç. Dr. Suat Özdemir 1 Heap Sort Heap Sort algoritması Merge Sort ve Insertion Sort algoritmalarının iyi özelliklerini bir arada toplar. Algoritma Insertion Sort gibi
DetaylıAlgoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1
Algoritmalar Arama Problemi ve Analizi Bahar 2016 Doç. Dr. Suat Özdemir 1 Arama Problemi Sıralama algoritmaları gibi arama algoritmaları da gerçek hayat bilgisayar mühendisliği problemlerinin çözümünde
DetaylıAlgoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları Giriş 1) Algoritma geliştirme üzerine temel kavramlar 2) Veri modelleri 3) Veri yapıları 4) Algoritma veya yazılım şekilsel gösterimi
DetaylıVeri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi
Veri Yapıları Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi Hash Tabloları ve Fonksiyonları Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision)
DetaylıAlgoritmalar ve Karmaşıklık
Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün
DetaylıAlgoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar
DetaylıYMT219 VERİ YAPILARI ÖDEV-1
YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){
DetaylıAHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ
AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 8 Problem Tanımı Arama Ağaçları İkili Arama
DetaylıDiziler (Arrays) Çok Boyutlu Diziler
Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.
DetaylıAlgoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan
Karmaşıklık Giriş 1 Algoritma Analizi Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi?
DetaylıAlgoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun
DetaylıAlgoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı Yığın ve kuyruk modelleri verinin geçici olarka saklandığı, davranışları birbirinin tamamen tersi olan ve bellek üzerinde kurulmuş birer saklama
DetaylıTemel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
DetaylıDiziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
DetaylıBİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi
BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? İki değişken değerinin yer değiştirilmesi (swapping) selection sort sıralama algoritması bubble sort
DetaylıBMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü
BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı B+ Tree Temel bir veritabanı çalışma kodu Hash (Karma) Heap Ağaçlar
DetaylıVERİ YAPILARI DATA STRUCTURE GİRİŞ
VERİ YAPILARI DATA STRUCTURE GİRİŞ Veri Yapısı Nedir O Verinin ve bilginin bellekte nasıl organize edildiğini, bellekte tutulma biçimini ifade eder. O Tüm programlama dillerinin, genel olarak, tamsayı,
DetaylıVERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ
VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla
DetaylıDr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net
Bilgisayar Programlama Ders 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek
DetaylıAlgoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1
Algoritmalar Sıralama Problemi ve Analizi Bahar 2017 Doç. Dr. Suat Özdemir 1 Sıralama Problemi ve Analizi Bu bölümde öncelikle bir diğer böl-ve-yönet yöntemine dayalı algoritma olan Quick Sort algoritması
DetaylıDOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Sıralı erişimli dosya organizasyonu yöntemleri Sunum planı Sıralı erişimli dosya organizasyonu yöntemleri Basit sıralı
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
DetaylıVERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.
VERİ YAPILARI HASH TABLOLARI Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ muratgok@gmail.com Hash tabloları Hash tablo veri yapısı ile veri arama, ekleme ve silme işlemleri
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2 Özyineli Olmayan (Nonrecursive) Algoritmaların Matematiksel Analizi En büyük elemanı bulma problemi En Büyük Elemanı Bulma Problemi Girdi
DetaylıDOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Çarpışma çözümleme yöntemleri Sunum planı Bağlantıları kullanarak çarpışmaların çözümlenmesi. Coalesced Hashing (Birleştirilmiş
DetaylıArama Algoritmaları. Doğrusal Arama ve Binary Arama
Arama Algoritmaları Doğrusal Arama ve Binary Arama Doğrusal Arama-Örnek Dizi (Array) sayilistesiiçerisindeki sayılar aşağıdaki gibidir: 17 23 5 11 2 29 3 11, verilen dizi içerisinde aranacaksa doğrusal
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
DetaylıVeri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli
Veri Modelleri Ağaç Veri Modeli Ağaç Veri Modeli Verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen bir veri modelidir. Ağaç veri modeli daha fazla bellek
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini
DetaylıALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü
ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Temel Kavramlar Algoritma: Bir problemin çözümünü belirli bir zamanda çözmek için sonlu sayıdaki adım-adım birbirini takip eden
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama
DetaylıGraf Veri Modeli. Düğümler kümesi. Kenarlar kümesi
Graf Veri Modeli Graf, bir olay veya ifadenin düğüm ve çizgiler kullanılarak gösterilme şeklidir. Fizik, Kimya gibi temel bilimlerde ve mühendislik uygulamalarında ve tıp biliminde pek çok problemin çözümü
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ Algoritma Analizi Çerçevesi Algoritma Analizinde Göz Önünde Bulundurulması Gerekenler Neler? Algoritmanın Doğruluğu (Correctness) Zaman
DetaylıAdresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.
Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-/ Getirme Çevrimi Yürütme Çevrimi Çözme İşlenen Yürütme
DetaylıWeek 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =
Week 9: Trees 1. TREE KAVRAMI 2. İKİLİ AĞAÇ VE SUNUMU 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI < 6 2 > = 1 4 8 9 1. TREES KAVRAMI Bir ağaç bir veya daha fazla düğümün (T) bir kümesidir : Spesifik olarak
DetaylıMax - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları
Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları Max - Min Heap Öncelikli kuyruk konusunu hatırlayın. Kuyruğa sonradan eklenmesine rağmen öncelik
DetaylıTemel Bilgisayar Bilimleri Ders Notu #4-2. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı
DetaylıC ile Uygulamalar 3 - Cevaplar
C ile Uygulamalar 3 - Cevaplar Cevap-1: //Soru 1 int recursivefaktoriyel(int); //Fonksiyonun prototipi tanımlanmaktadır. int sayi; printf("faktoriyeli Hesaplanacak Sayiyi Giriniz:"); scanf("%d",&sayi);
DetaylıBIP116-H14-1 BTP104-H014-1
VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.
DetaylıPointer Kavramı. Veri Yapıları
Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,
Detaylıb) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz
2014 Soru 1. (15 puan) 5,2,4,1,15,8,11,13,7,6 dizisinin elemanlarından maksimum özellikli bir yığın(heap) oluşturulmasını adım adım yazınız. Heapsort algoritmasının yardımıyla yapılacak sıralamayı anlatınız.
DetaylıDosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1
Dosyalarda Farklı Yaklaşımlar Kütük Organizasyonu 1 Giriş Şimdiye kadar öğrendiğimiz temel dosyalama komutlarıyla (fopen,flclose, fputs vb..) dosya oluşturabilmekte, kayıt ekleyebilmekte ve her bir kaydın
DetaylıGraflar bilgi parçaları arasındaki ilişkileri gösterirler.
Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri
DetaylıSAYISAL ÇÖZÜMLEME. Sayısal Çözümleme
SAYISAL ÇÖZÜMLEME 1 SAYISAL ÇÖZÜMLEME 4. Hafta DENKLEM ÇÖZÜMLERİ 2 İÇİNDEKİLER Denklem Çözümleri Doğrusal Olmayan Denklem Çözümleri Grafik Yöntemleri Kapalı Yöntemler İkiye Bölme (Bisection) Yöntemi Adım
DetaylıPROGRAMLAMAYA GİRİŞ FONKSİYONLAR
PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya
DetaylıBMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları
BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Dersin Planı Dizgi Eşleme Algoritmaları
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 9 Hatırlatmalar Tam İkili Ağaç Eksiksiz İkili
DetaylıÖzyineleme (Recursion)
C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,
DetaylıİNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ
İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 7 ****(ilk 3 soru çıktı üzerinde el
DetaylıBLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN
BLM111 Programlama Dilleri I Hafta 10 Diziler Yrd. Doç. Dr. Caner ÖZCAN Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri girilmesi ve girilen verilerin işlenerek belirli bir sistematiğe
DetaylıDENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ
DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Veri Yapıları ve Algoritmalar BİM-221 2/II 2+0+2 3 3,5 Dersin Dili
DetaylıBLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA
BLM-112 PROGRAMLAMA DİLLERİ II Ders-8 Dosya İşlemleri-1 Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması
DetaylıBilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.
SEQUENCE ALGORİTMASI Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür. Bir dizi yapısı içinde, bir eylem ya da bir olay, geçmiş
DetaylıAlgoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları
DetaylıJava, Python ve Ruby Dillerinin Performans Karşılaştırması
Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 1 Dillerin seçim nedeni Java, Pyton ve Ruby Programlama dillerinin popülerliği
Detaylıelse *on=*on+1; return gecici; } int giseyeyerlestir(struct gise*giseler) {//giseye bos olmasi durumunda yerlestirme yapiliyor...
///////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////// ALGORITMA VE PROGRAMALAMA DERSI ODEV-3 ////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri
DetaylıAlgoritma ve Akış Diyagramları
Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları
DetaylıAĞAÇLAR. Doç. Dr. Aybars UĞUR
AĞAÇLAR TREES Doç. Dr. Aybars UĞUR Giriş Bağlı listeler, yığıtlar ve kuyruklar doğrusal (linear) veri yapılarıdır. Ağaçlar ise doğrusal olmayan belirli niteliklere sahip iki boyutlu veri yapılarıdır (Şekil
DetaylıFiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları
Fiziksel Tasarım Konuları Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları Fiziksel Tasarım İyi performans için Hızlı cevap zamanı Minimum disk erişimi Disk Yapısı İz(Track) Silindir
DetaylıBÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok
8.0.0 Şebeke Kavramları BÖLÜM III: Şebeke Modelleri Şebeke (Network) Sonlu sayıdaki düğümler kümesiyle, bunlarla bağlantılı oklar (veya dallar) kümesinin oluşturduğu yapı şeklinde tanımlanabilir ve (N,A)
DetaylıAlgoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1
Algoritmalar Doğrusal Zamanda Sıralama Bahar 2017 Doç. Dr. Suat Özdemir 1 Sıralama Özet - Insertion sort Kodlaması kolay Küçük veri setleri için hızlı (~50 element) Neredeyse sıralı veri setleri için en
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak
DetaylıFonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {
Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR Aç Gözlü (Hırslı) Algoritmalar (Greedy ) Bozuk para verme problemi Bir kasiyer 48 kuruş para üstünü nasıl verir? 25 kuruş, 10 kuruş,
DetaylıC dilinde For döngüsü ve örnekleri
C dilinde For döngüsü ve örnekleri Döngü (loop) deyimleri, bir kümenin belli bir koşul altında tekrar edilmesi için kullanılır. C programlama dilinde, while, do while ve for olmak üzere üç tip döngü deyimi
DetaylıAlgoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR
Algoritmaların Karşılaştırılması Doç. Dr. Aybars UĞUR Giriş Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. Bir programın zaman karmaşıklığı
DetaylıBİL1001 Bilgisayar Bilimlerine Giriş 1
DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar
DetaylıGezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı
Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım Mehmet Ali Aytekin Tahir Emre Kalaycı Gündem Gezgin Satıcı Problemi GSP'yi Çözen Algoritmalar Genetik Algoritmalar
DetaylıBinary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama
Bölüm 39 Binary Search (Yarılama) 39.1 Dizide Bir Öğe Arama İkil aramayı (yarılama yöntemi) sıralı veri kümelerinde sık sık kullanırız. Örneğin, sözlükte bir sözcüğü ararken, sözlüğün bütün sayfalarını
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI Algoritma Nedir? Algoritma Bir problemin çözümü için geliştirilmiş özel metot Girdileri çıktılara dönüştüren sıralı hesaplama adımları Tanımlanmış
DetaylıProgramlama Dilleri 3
Diziler (Arrays) 1 Dizi Kavramı Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların
DetaylıAlgoritma ve Programlama II Recursive Fonksiyonlar Dosyalama
Algoritma ve Programlama II Recursive Fonksiyonlar Dosyalama Rekürsif Algoritmalar Bir problemin çözümü için döngü kurulması gerekiyorsa bu ihtiyacı karşılamak için birisi çevirimli diğeri rekürsif olarak
DetaylıBölüm 9. Altprogramlar ISBN
Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda
DetaylıYZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği
DetaylıC++ Dilinde Bazı Temel Algoritmalar
C++ Dilinde Bazı Temel Algoritmalar Bazı eşyalar için her eve lazım derler. Az sonra bahsedeceğimiz algoritmalar da her kodcuya lazım cinsten. Sayının tek mi çift mi olduğuna karar veren programdan, çarpım
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
DetaylıGöstericiler (Pointers)
C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi
DetaylıYZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ
YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ Azalt ve Fethet Algoritmaları Problemi daha küçük bir örneğine çevir: Küçük örneği çöz Çözümü asıl probleme genişlet 3 tipi vardır:
DetaylıPERMÜTASYON, KOMBİNASYON. Örnek: Örnek: Örnek:
SAYMANIN TEMEL KURALLARI Toplama Kuralı : Sonlu ve ayrık kümelerin eleman sayılarının toplamı, bu kümelerin birleşimlerinin eleman sayısına eşittir. Mesela, sonlu ve ayrık iki küme A ve B olsun. s(a)=
Detaylı10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)
1 10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST) Kapsayan ağaç Spanning Tree (ST) Bir Kapsayan Ağaç (ST); G, grafındaki bir alt graftır ve aşağıdaki özelliklere sahiptir. G grafındaki tüm
DetaylıBölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73
Bölüm 5. Ağaç Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 73 O. T. Yıldız, C && Java ile Veri Yapılarına, Boğaziçi Üniversitesi Yayınevi,
DetaylıDiziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler
Diziler Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler Dizi Tanımı Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen
Detaylı