Başlangıç > Kodlar > Visual Basic 6 ile SelectionSortASC

Visual Basic 6 ile SelectionSortASC


Seçerek Sıralama(Selection Sort) Algoritması

Aşağıdaki kodu bir modul dosyasina kopyalayiniz,


Option Explicit
Sub SelectionSortASC(arrArray() As Double)
‘**************************************************
‘Purpose : Sort array ascending with Selection Sort algorithm
‘Input   : Array
‘Output  : Array
‘Date    : 06.09.2002
‘Author  : Murat Aras
‘**************************************************

‘Seçerek Sıralama(Selection Sort) Algoritması :
‘Seçerek sıralama algoritmasının işletimini şöyle özetleyebiliriz.
‘Dizideki en küçük elemanı bul, bu elemanı dizinin ilk (yer olarak) elemanıyla yer değiştir.
‘Daha sonra ikinci en küçük elemanı bul ve bu elemanı dizinin ikinci elemanıyla yer değiştir.
‘Bu işlemi dizinin tüm elemanları sıralanıncaya kadar sonraki elemanlarla tekrar et.

‘intCounter1 değişkeninin sıfırdan başlayıp dizinin sonuna kadar ilerlediğini görüyoruz.
‘Bu değişken arttıkça bu değişkenin o an için belirttiği dizi elemanının solunda kalan elemanların sıralanmış hale gelir.
‘Böylelikle bu değişken dizinin büyüklüğüne ulaştığında tüm dizi sıralanmış hale gelmektedir.

‘Performans :
‘N elemanlı bir dizi için,
‘Seçerek sıralama algoritmasi yaklaşık N2/2 karşılaştırma ve N yer değiştirme işlemi gerçekleştirmektedir.
‘Bu özelliği seçerek sıralama işlevinin gerçekleştiriminden çıkarmak mümkündür.
‘Dış döngünün her işletiminde bir tek yer değiştirme işlemi gerçekleştirildiğinden,
‘bu döngü N adet işletildiğinde (N=dizi boyutu) N tane yer değiştirme işlemi gerçekleştirilecektir.
‘Bu döngünün her işletiminde ayrıca N-i adet karşılaştırma gerçekleştirildiğini göz önüne alırsak
‘toplam karsşılaştırma sayısı (N-1)+(N-2)+…+2+1» N2/2 olacaktır.

Dim intCounter1 As Integer  ‘Counter 1
Dim intCounter2 As Integer  ‘Counter 2
Dim intArraySize As Integer ‘Array size
Dim dblTemp As Double

‘Get array size
intArraySize = UBound(arrArray())

‘First counter start 0 to array size
For intCounter1 = 0 To intArraySize – 1
‘Second counter start first counter to array size
For intCounter2 = intCounter1 + 1 To intArraySize – 1
‘Compare elements
If arrArray(intCounter2) < arrArray(intCounter1) Then
‘If second element less then first element, swap them
dblTemp = arrArray(intCounter2)
arrArray(intCounter2) = arrArray(intCounter1)
arrArray(intCounter1) = dblTemp
End If
Next intCounter2
Next intCounter1

End Sub


Kullanımları aşağıdaki şekildeki gibidir.


Dim arrDoubleArray() As Double
‘Double degerlerden olusan dizi
‘Bubble sort örneği
SelectionSortASC arrDoubleArray()



TD Software


Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: