Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1. 
void sort(int[] a)
{
   for (int i = 0; i < a.length; i++)
   {
      int min = i;
      int j;

      // Sıralanmamış dizideki en küçük elemanı bulalım
      for (j = i + 1; j < a.length; j++)
         if (a[j] < a[min])
            min = j;

      // Sıralanmamış dizideki en küçük elemanı dizinin sonuna gönderelim
      int T = a[min];
      a[min] = a[i];
      a[i] = T;
   }
}

Bkz. Sorting algorithms
fizikci
21 Ocak 2005 20:56 ~ 12 Nisan 2006 17:29
2.  Seçerek sıralama olarak Türkçeleştirebileceğimiz algoritma çeşitidir ve bir dizi içerisindeki elemanları sıralanmasında en büyük elemanı bul ve başa koy mantığıyla çalışır böylece büyükten küçüğe doğru bir sıralama yapmış oluruz. Aşağıda bir dizide bulunan elemanları büyükten küçüğe doğru sıralayan ve bu işlemi de seçerek sıralama algoritmasıyla yapan C ile yazılmış bir program yer almaktadır.

#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
void main()
{
int i,j,indis,en_buyuk_eleman;
int dizi[10]= {10,34,30,40,-1,6,704,8,290,100};
for(i=0;i<10;i++){
    en_buyuk_eleman=dizi[i];
    indis=i;
         for(j=i+1;j<10;j++)
            if(dizi[j]>en_buyuk_eleman){
            en_buyuk_eleman=dizi[j];
            indis=j;
         }
dizi[indis]= dizi[i];
dizi[i] =en_buyuk_eleman;
cout<<dizi[i]<<endl;
}
system("pause");
return 0;
}


Bu algoritmanın karmaşıklığı n*(n-1)/2 kadardır yani diziyi o kadar kez taramaktadır. Örneğimizde yer aldığı haliyle toplam 45 defa karşılaştırma yaparak gerçek sıralamaya ulaşmaktadır. En başta ilk elemanı alıyoruz ve buna en_buyuk_eleman değişkenini atıyoruz (9 karşılaştırmada)sonra 2. indisli elemanı 8 karşılaştırmayla belirliyoruz ve karşılaştırma sayımız giderek 1 doğru azaılıyor.Toplamları ise 45 i veriyor. Burada kafalara bir soru takılabilir:

Karmaşıklık ifadesi n*(n-1)/2 dir burada n karşılaştırılan eleman sayısıdır.

1 den n e kadar olan sayıların toplamı ise n*(n+1)/2 formülüyle bulunur buradaki n ise karşılaştırma sayısıdır.
hacy
09 Şubat 2008 21:44
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen