Pascal ıle sıralama metodları

+ Yorum Gönder
Webmaster ve Diğer Kodlama Dilleri Bölümünden Pascal ıle sıralama metodları ile ilgili Kısaca Bilgi
  1. 1
    aslan-67
    Üye
    Reklam

    Pascal ıle sıralama metodları

    Reklam



    Pascal ıle sıralama metodları

    Forum Alev
    pascal ıle sıralama metodları

    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
    çözüm:
    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 gotoxy(4*i,4) ; read (a[i]); end; repeat
    tamam:=true;
    for i:=2 to n do
    if a[i]<a[i-1] then
    begin
    c:=a[i];
    a[i]:=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[i]: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ışarıdan girilen N elemalı bir diziyi küçükten büyüğe doğru Selection sort yöntemi ile sıralayın
    Çözüm:

    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[i]);
    for i:=1 to n do
    begin
    kck:=a[i];
    yer:=i;
    for j:=1 to n do
    begin
    if a[j]>kck then
    begin
    kck:=a[j];
    yer:=j;
    m:=a[i];
    a[i]:=a[yer];
    a[yer]:=m
    end;
    end ;
    end;
    writeln('dizinin sirali şekli...:');

    for i:=1 to n do write (a[i]: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?
    PROGRAM

    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]<b[ib] then
    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.



    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.

    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[i]<x do i:=i+1;
    while x<a[j] do j:=j-1;
    if i<=j then
    begin
    y:=a[i]; a[i]:=a[j]; a[j]:=y;
    i:=i+1; j:=j-1;
    end;
    until i>j;
    if l<j then Qsort(l,j);
    if i<r then Qsort(i,r);
    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[i]);
    end;
    Quick(A,1,N);
    writeln;
    for i:=1 to n do write(a[i]:5);
    readln;
    end.



  2. Alev
    Özel Üye

    Pascal ıle sıralama metodları Makalesine henüz yorum yazılmamış. ilk yorumu siz yapın


Sponsor Bağlantılar
+ Yorum Gönder
5 üzerinden | Toplam : 0 kişi