IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 07 Temmuz 2010, 20:13   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Delphi sıralama algoritmaları




Sıralama,sayısal ortamdaki bilgilerin veya verilerin belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı erişilmesini sağlayan düzenlemedir. Bilgisayar yazılım uygulamalarında ve donanım tabanlı sayısal sistem çözümlemelerinde bilgilerin/verilerin sıralı olması, bilgiye erişimi sağlayacak , bilgiyi kullanacak programlara ait algoritmaların gerçekleştirilmesini kolaylaştırır,sadeleştirir ve işlemin daha hızlı yapılmasını sağlar. Bu nedenle , ister donanım olsun ister yazılım olsun rastgele sırada gelen /oluşan bilgilerin sıralanması bilgisayar ve benzeri sayısal sistemlerde gereksinim duyukan önemli bir olgudur. Çok değişik sıralama algoritmaları vardır; herbiri uygulamaya bağlı olarak en iyi çözüm olabilmektedir; seçilen veri modeli, kümedeki toplam veri sayısı, bilgilerin geliş sırası gibi özellikler kullanılacak sıralama algoritmasını belirler . Sıralama algoritmaların bazıları:
  • Kabarcık Sıralaması (Bubble Sort)
  • Seçmeli Sıralama (Selection Sort)
  • Birleşmeli sıralama (Merge Sort)
  • Hızlı Sıralama (Quick Sort)

1. Kabarcık Sıralaması(Bubble sort):

Bu sıralama şeklinde hereleman kendisinden bir sonraki elemanla test ediliyor. Verilen şartın küçük yada büyük olma durumuna göre şarta uyan elemanların yerleri değiştiriliyor. Bu sıralama yönteminde işlem aşağıdaki gibi yapılır:

eleman ile 2. eleman test edilir. Şart sağlandığında dizi içerisindeki yerleri değiştirilir.
eleman ile 3. eleman test edilir. Şart sağlandığında dizi içerisindeki yerleri değiştirilir...
Bu işlem dizi sonuna kadar devam eder. Eğer baştan sona kadar hiçbir yer değiştirme işlemi yapılmamışsa dizi sıralanmıştır demektir. Aksi halde dizinin başından itibaren test işlemine devam edilir.

Örnek: Dışarıdan girilen N elemalı bir diziyi küçükten büyüğe doğru bubble sort yöntemi ile sıralayın.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
program buble_short; uses wincrt; var b,i,n,c:integer; tamam:boolean; a:array[1..100] of integer; begin write('diziniz kaç elemanli...:');readln(n); writeln; writeln('dizinin elemanlarini giriniz'); for i:=1 to n do begin ***oxy(4*i,4) ; read (a); end; repeat tamam:=true; for i:=2 to n do if a begin c:=a; a:=a[i-1]; a[i-1]:=c; tamam:=false; end; until tamam= true; writeln('sırali dizimiz'); for i:=1 to n do write(a:3); end.

2.Seçmeli Sıralama (Selection Sort):

Bu algoritmada dizinin bir ucundan başlanır; başından veya sonundan olabilir. Örneğin dizinin başından başladığı ve küçükten büyüğe doğru sıralama yapılacağı varsayılırsa algoritmanın davranışı şöyledir: Önce ilk eleman alınır ve daha sonra dizinin içerisindeki en küçük eleman aranır; bulunduğu zaman ilk eleman ile yer değiştirilir; daha sonra ikinci eleman alınır ve bu eleman dahil kalan elemanlara arasında ikinci küçük eleman aranır ve ikinci elemanla yer değiştirilir. Bu işlem dizinin son elemanına kadar tekrarlanırsa dizi sıralanmış olur.

Örnek: dışarıdan girilen N elemalı bir diziyi küçükten büyüğe doğru Selection sort yöntemi ile sıralayın

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
program selection_sort ; uses wincrt; var n,i,yer,j,kck,m:integer; a:array[1..100] of integer; begin write('diziniz kaç elemanli...:'); read(n) ; writeln('dizinin elemanlarini giriniz'); for i:=1 to n do read(a); for i:=1 to n do begin kck:=a; yer:=i; for j:=1 to n do begin if a[j]>kck then begin kck:=a[j]; yer:=j; m:=a; a:=a[yer]; a[yer]:=m end; end ; end; writeln('dizinin sirali şekli...:'); for i:=1 to n do write (a:4); end.

3. Birleşmeli Sıralama (Merge Sort );
İki sıralı diziyi tek bir dizide sıralamak için kullanılır.

örnek: Dışarıdan girilen N elemanlı küçükten büyüğe doğru sıralı bir A dizisi ile M elemanlı küçükten büyüğe doğru sıralı bir B dizisini(MERGE SORT) Yöntemi ile N+M elemanlı bir C dizisine sıralı olarak yerleştiren program?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
program merge_sort; uses wincrt; var ia,ib,n,m,ic,j:integer; a,b,c:array[1..100] of integer; begin clrscr; writeln('1. dizi kaç elemanli'); read(n); writeln('1. dizinin elemanlarini giriniz'); for ia:=1 to n do read(a[ia]); writeln('2. dizi kaç elemanli'); read(m); writeln('2. dizinin elemanlarini giriniz'); for ib:=1 to m do read(b[ib]); ia:=1; ib:=1 ; ic:=1; while(ia<=n) and (ib<=m) do begin if a[ia] begin c[ic]:=a[ia]; ia:=ia+1; end else begin c[ic]:=b[ib]; ib:=ib+1; end; ic:=ic+1; end; if ia>n then begin for j:=ib to m do begin c[ic]:=b[j]; ic:=ic+1; end; end else begin for j:=ia to n do begin c[ic]:=a[j]; ic:=ic+1; end; end; for ic:=1 to n+m do write (c[ic]:4); end.

4. Hızlı Sıralama (Quick Sort):
Hızlı sıralama algoritması böl ve yönet (divide and conquer) politikasına dayanır; sıralanması istenen dizi belirli bir sınır (pivot) değerine göre iki alt diziye ayrılır. İkiye ayırma işlemi , bu sınır sayısından küçük olan elemanlar bir tarafa , büyük olan elemanlar diğer tarafa toparlanarak yapılır. Daha sonra , yine hızlı sıralama algoritması kullanılarak , bu iki alt dizinin sıralanması istenir.

Örnek: Dışarıdan girilen N elemanlı diziyi küçükten büyüğe doğru sıralayınız.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Program Quick_sort; uses wincrt; { turbo pascal için crt} type dizi=array[1..100] of integer; var a:dizi; i,n:integer; procedure Quick(var a:dizi; alt,ust:integer); procedure Qsort(l,r:integer); var i,j,x,y:integer; begin i:=1; j:=r; x:=a[(l+r) div 2 ]; repeat while a while x if i<=j then begin y:=a; a:=a[j]; a[j]:=y; i:=i+1; j:=j-1; end; until i>j; if l if i end; begin Qsort(alt,ust); end; begin write('diz kaç elemanli...:'); readln(N); for i:=1 to n do begin write('A[',i,']='); readln(a); end; Quick(A,1,N); writeln; for i:=1 to n do write(a:5); readln; end.

Alıntıdır.

Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

__________________
Büyümeden yaşlandım ben.Hayat; ilk gördüğüm insanların,ilk gördüğüm gibi olmadıklarını öğretti.

Kahraman Tazeoğlu
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
algoritmaları, delphi, sıralama


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
italyanca sıralama kesirler Violent İtalyanca 0 11 Haziran 2012 21:01
pencere sıralama Gulsum mIRC Scripting Sorunları 1 17 Kasım 2011 20:02
Kanalları Sıralama neobre mIRC Scripting Sorunları 8 08 Ocak 2010 01:49
Atatürk dönemi kronolojik sıralama PopSy Atatürk Köşesi 3 24 Temmuz 2008 21:58