C# Programlama ile Insertion Sort

DrogbA

Forum Üyesi
Katılım
27 Ara 2020
Mesajlar
3,440
Tepkime puanı
0
Puanları
36
Veri yapılarında insertion(araya sokma) ile sıralama işlemlerinde, karışık olarak dizilmiş sayılar iki gruba ayrılır. İlk grup sıralanacak ya da sıralama işleminin gerçekleştiği grup, geri kalanı da karışık olan veri grubudur. Bu işlemlerde for döngümüzü ikinci sıradaki elemandan başlatırız. Bir öncekiyle karşılaştırma yaptırarak sıralama işlemini gerçekleştiririz. Karşılaştırdığımız sayı, kendisinden küçükse sol tarafa geçer.Resmi incelerseniz daha iyi anlayabilirsiniz. Sıralanmış olan yere kadar bir grup, diğer taraf bir grup şeklinde ayrılır. şimdi yapacağımız örnekle daha iyi anlayacağınızı umuyorum. Bu programda sayıları kendimiz gireceğiz, program da bize küçükten büyüğe doğru sıralanmış halini verecek. Büyükten küçüğe doğru sıralamak için de tek bir satırda değişiklik yapacağız. Onu da o satırın yanında yorum olarak belirteceğim. Kodlar:

Kod:
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());
             insertion(dizi);
         }
         static void insertion(int[] dizi)
         {
             int i, j;
             int temp;
             for (i = 1; i < dizi.Length; i++)
             {
                 temp = dizi[i];
                 j = i;
                 while ((j > 0) && (dizi[j - 1] > temp))//"< temp" yapılırsa büyükten küçüğe sıralar.
                 {
                     dizi[j] = dizi[j - 1];
                     j = j - 1;
                 }
                 dizi[j] = temp;
             }
             Console.WriteLine("-----------SIRALANMIş HALİ----------");
             for (int m = 0; m < 6; m++)
                 Console.WriteLine(dizi[m]);
         }
     }
 }

Öncelikle main fonksiyonumuz içerisinde 6 elemanlı bir dizi tanımladık. Değerleri girerek, insertion fonksiyonuna gönderdik. Bu sıralama işleminde karşılaştırmaya 2. elemandan başlayacağımızı yukarıda belirtmiştim. Bu yüzden for döngüsünü 1'den başlattık. While döngümüz içerisinde de bir önceki elemanla karşılaştırma işlemini yaptırdık. Geriye bu işlemi ekrana basmak kaldı. Çıkıtınızda girdiğiniz değerlerin küçükten büyüğe doğru sıralandığını göreceksiniz. Ayrıca yorum satırında da belirttiğim gibi "temp"'in solundaki ">" işaretini "<" yaparsanız büyükten küçüğe doğru sıralamış olursunuz.
 

Peri

Co Admin
Katılım
2 May 2020
Mesajlar
4,949
Tepkime puanı
0
Puanları
36
Takım
Beşiktaş
Teşekkürler
 

Nutella

Bayan Üye
Özel Üye
Katılım
2 Ocak 2021
Mesajlar
3,559
Tepkime puanı
0
Puanları
36
Cinsiyet
  1. Bayan
Takım
Galatasaray
Paylaşım için teşekkürler.
 
metal işleme
Üst