![]() |
|
| |||||||
![]() |
| | Seçenekler |
|
#1
| ||||||
| ||||||
Sıralama AlgoritmalarıSıralama Algoritmaları Bu algoritma en temel ve basit sıralama algoritmasıdır.Genel olarak verilen n adet değer için n-1 adımda sıralama yapılır. Bu algoritmayı şu şekilde anlatabiliriz ; Birinci adım : Bu adımda dizinin ilk elemanı dizinin diğer elemanları ile karşılaştırılır.İlk eleman karşılaştırıldığı eleman'dan küçükse dizideki bir sonraki elemana geçilir. Eğer dizideki eleman karşılaştırıldığı elemandan büyükse ilk eleman büyük olduğu elemanın yerine eleman ise dizinin ilk sırasına yerleştirirlir.Bu işlem dizinin son elemanınana kadar devam eder.Daha sonra ikinci adıma geçilir. İkinci adım : Bu adımda dizinin ikinci elemanı dizinin diğer elemanları ile karşılaştırılır.İkinci eleman karşılaştırıldığı eleman'dan küçükse dizideki bir sonraki elemana geçilir. Eğer dizideki eleman karşılaştırıldığı elemandan büyükse ikinci eleman büyük olduğu elemanın yerine eleman ise dizinin ikinci sırasına yerleştirirlir.Bu işlem dizinin son elemanınana kadar devam eder.Daha sonra üçüncü adıma geçilir. ... ... n-1 adım : Bu adımda ise dizinin n-1 inci sıradaki elemanı ile dizinin n ci elemanı karşılaştırılır.Eğer n. eleman'dan büyükse yer değiştirirler.Yoksa işlem sona erer. Görüldüğü gibi n adet değer için n-1 adımda bir sıralama yapılıyor. Karşılaştırma sayısını bulmak istersek ; 1. adımda n-1 adet karşılaştırma yaptık. 2. adımda n-2 adet karşılaştırma yaptık. 3. adımda n-3 adet karşılaştırma yaptık. .... .... n-2. adımda 2 karşılaştırma yaptık. n-1. adımda 1 karşılaştırma yaptık. Yani toplam karşılaştırma sayımız (n-1)+(n-2)+(n-3)+....+3+2+1 dir. n adet veriyi sıralamak için yapılan toplam karşılaştırma süresi o halde n*(n-1)/2 'dir. Örnek algoritmanın programını şu şekilde verebilriz ; For i = 1 To p - 1 For j = i + 1 To p If dizi(i) > dizi(j) Then t = dizi(i) dizi(i) = dizi(j) dizi(j) = t End If Next j Next i Aşağıdaki örnek program ise Visual Basic'de bu algoritmanın uygulanmasını göstermektedir. Formun general declarations kısmına aşagıdaki değerleri giriniz.Bunlar programda kullanacağımız degişkenlerdir. Option Base 1 Dim dizi Dim i, j, t, p As Integer Daha sonra form üzerine iki tane buton yerleştiriniz. Bunlardan birincisinin adını Dizi ikincisinin adını ise Sırala olarak değiştirin.Birinci butonun click event'ine aşağıdaki kodu giriniz. Private Sub Command1_Click() 'dizi gir p = Val(InputBox("dizinin boyutunu giriniz")) ReDim dizi(p) For j = 1 To p dizi(j) = Val(InputBox("Dizinin " & j & " elemanını giriniz", "Eleman")) Next j End Sub İkinci butonun click event'ine ise aşağıdaki satırları yazınız. Private Sub Command2_Click() Print "Dizinin önceki hali" For i = 1 To p Print dizi(i); "-"; Next i For i = 1 To p - 1 For j = i + 1 To p If dizi(i) > dizi(j) Then t = dizi(i) dizi(i) = dizi(j) dizi(j) = t End If Next j Next i Print "Dizinin sıralanmış hali" For i = 1 To p Print dizi(i); "-"; Next i End Sub |
![]() |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| Görsel Yardımla Sıralama Algoritmaları | özlem34 | Webmastersitesi çöplüğü | 0 | 21-05-2008 10:25 |
| Sıralama Algoritmaları | B737 | Visual Basic & Action script | 0 | 25-01-2008 06:10 |
| Bilgileri Görüntüleme ve Sıralama « | kadınca | Google Adwords | 0 | 10-12-2007 11:30 |
| Python ile sıralama algoritmaları bublesort, quicksort, insertation sort vs.. | banias | Python | 0 | 24-11-2007 04:01 |
| C# Dizi Eleman Sıralama | rhythm | C, c++, c# | 0 | 27-10-2007 01:51 |