Selection Sort sıralama algoritması ve Bağlı Listeler

Başlatan Jey@Nfer, 07 Şubat 2012 - 00:58:50

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Jey@Nfer

Merhaba arkadaşlar selection sort sıralama algoritmasını bağlı listelerde kullanarak hem sıralı bağlı listeler hem de sıralama algoritmalarına örnek vermek istedim.

Umarım işine yarayan arkadaşlar olur.



//J3y@Nf3R

#include "stdio.h"
#include "time.h"
#include "stdlib.h"


typedef struct yapi
{
    int s;

    struct yapi *onceki;
    struct yapi *sonraki;

}SAYI;

SAYI *ilk='\0';
SAYI *son='\0';

int adet=0;

main()
{
    printf("******************************************\n");
    printf("*      LINKED LIST - SELECTION SORT      *\n");
    printf("*========================================*\n");

    printf("\nDevam etmek icin bir tusa basiniz...\n");

getchar();


    printf("Kac Adet Sayi Olsun? \n");
    scanf("%d",&adet);

    atama();

printf("\nAtama Yapildi \n\n");

    yazdir();

printf("\n\nSelection Sort Algoritmasiyla Siralandi \n\n");

    selectionsort();
    yazdir();

printf("\n\n");

getchar();
}

atama()
{
    int i;
    SAYI *yeni;

  srand((unsigned) time(NULL));

  for(i=0; i<adet; i++)
  {
      yeni=(SAYI *) malloc(sizeof(SAYI));

      yeni->s=rand()%100;

    if(ilk!=0)
    {
    son->sonraki=yeni;
    yeni->onceki=son;
    son=yeni;
    son->sonraki='\0';
    }

    else
    {
    ilk=yeni;
    son=ilk;
    ilk->onceki='\0';
    ilk->sonraki='\0';
    }

  }

}


yazdir()
{
    SAYI *sayi;

    sayi=ilk;

    while(sayi)
    {
        printf("  %d  ",sayi->s); sayi=sayi->sonraki;
    }
}


selectionsort()
{
int gecici=0;

SAYI *sayi1, *BAS, *EKA; //EnKucugunAdresi

BAS=ilk;


    while( BAS )
    {

    sayi1=BAS;
    EKA=sayi1;

        while( sayi1 )
        {
            if( (sayi1->s) < (EKA->s) ) EKA=sayi1;

            sayi1=sayi1->sonraki;
        }

    gecici=EKA->s;
    EKA->s=BAS->s;
    BAS->s=gecici;

    BAS=BAS->sonraki;
    }


}





Sıralama ve arama algoritmalarıyla ilgili örnek isteyen arkadaşlar olursa yardımcı olmaya çalışırım ayrıca!
Hırs , azim , tevekkül ...

www.mehmetvahit.net

aktoluna

Hocam paylaşım için teşekkürler. Bir sorum olacak . Sonraki önceki neyi gösteriyor nasıl çalışıyor açıklarmısınız?