Bolu Beyi tarafından yazıldı Ocak - 6 - 2011 0 Yorum

Bir önceki yazımda insertion sıralama işlemi hakkında yazmıştım ve o yazımda selection ve bubble sıralama işlemleri konusu hakkında yazı yazacağımı söylemiştim. Şimdi ikisini birden paylaşacağım. Çünkü main fonksiyonu insertion, bubble ve selection sıralama işlemlerinde aynı zaten. Öncelikle selection işleminden kısaca bahsedeyim. Burada sayısal değerler içerisinde kendinden sonraki en küçük değer bulunur ve yer değiştirilir.Bubble sıralama işleminde ise ikili gruplar halinde arama yapılır. Yani girilen veya verilen sayısal değerler ikişerli olarak karşılaştırılır, küçük olan sol tarafa geçer. Böylelikle küçükten büyüğe doğru sıralama yapılır. Aşağıda verdiğim kodlar selection(seçmeli) sıralama işleminin kodları.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace bolubeyi.net
{
class Program
{
static void Main(string[] args)
{
int[] dizi = new int[6];
Console.WriteLine(“———–GİRİLEN DEĞERLER———“);

Console.WriteLine(“elemanları girin:”);
for (int k = 0; k < 6; k++)
dizi[k] = Convert.ToInt32(Console.ReadLine());
selectionsort(dizi);
}
static void selectionsort(int[] dizi)
{
int i, j;
int temp,enkucuk;
for (i = 0; i < dizi.Length; i++)
{
enkucuk=i;
for (j = i + 1; j < dizi.Length; j++)// “>” yapılırsa büyükten küçüğe doğru sıralar.
{
if (dizi[j] < dizi[enkucuk])
enkucuk = j;
}
temp = dizi[i];
dizi[i] = dizi[enkucuk];
dizi[enkucuk] = temp;
}
Console.WriteLine(“———–SIRALANMIŞ HALİ———-“);
for (int m = 0; m < 6; m++)
Console.WriteLine(dizi[m]);
}
}
}

Main fonksiyonumuz daha önceden paylaştığım insertion işleminin kodlarıyla aynı zaten. Selection fonksiyonunda ilk elemanımızı en küçük olarak kabul ediyoruz. Kendinden sonrakiyle karşılaştıracağımız için for döngümüzü “i+1” ile başlatıyoruz ve karşılaştırmamızı yaptırıyoruz. Bubble sıralama işleminin kodları:

static void bubblesort(int[] dizi)
{
int i, j;
int temp;
for (i = 1; i < dizi.Length; i++)
{
for (j = 0; j < dizi.Length-1; j++)
{
if (dizi[j] > dizi[j + 1])//”                    {
temp = dizi[j];
dizi[j] = dizi[j + 1];
dizi[j + 1] = temp;
}
}
}
Console.WriteLine(“———–SIRALANMIŞ HALİ———-“);
for (int m = 0; m < 6; m++)
Console.WriteLine(dizi[m]);
}
Burada da if yapımız içerisinde “j” ve “j+1” yazarak ikili şekilde karşılaştırmamızı yapıyoruz. Fazla ayrıntıya girmiyorum, çünkü diğer yaptığımız işlemlerle aşağı yukarı aynı. Sıralama işlemleri ile yazacaklarım bu kadar. Resimleri incelemeyi unutmayınız. Umarım faydasını görmüşsünüzdür, görüşmek üzere…

You must be logged in to post a comment.