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

Visual Basic 6 ile SelectionSortDESC


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

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


Option Explicit
Sub SelectionSortDESC(arrArray() As Double)
‘**************************************************
‘Purpose : Sort array descending 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 büyük elemanı bul, bu elemanı dizinin ilk (yer olarak) elemanıyla yer değiştir.
‘Daha sonra ikinci en büyü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 greater 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
‘Selection sort örneği
SelectionSortDESC 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. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: