AEU PC müh Veri yapıları (06.12.2022) // ALGORİTMALAR (Linear searching, binary searching , bubble sort)

#include <stdio.h>
#include <stdlib.h>
//doğrusal arama- indexof
int linearSearch(int gelenDizi[], int arananSayi, int elSay)
{
    for(int i = 0; i<elSay; i++ )
    {
        if(gelenDizi[i]==arananSayi)
            return i;
    }
    return -1;
}
//ikili-binary search
int binarySearch(int gelenDizi[], int arananSayi, int elSay)
{
    int sol=0;
    int sag=elSay-1;

    while(sag>=sol)
    {
        int orta = sol + (sag-sol)/2;
        if(gelenDizi[orta]==arananSayi)
            return orta;
        else if (arananSayi > gelenDizi[orta])
            sol=orta+1;
        else
            sag=orta-1;
    }
    return -1;
}
//binary search -recursive
int binarySearchR(int gelenDizi[], int arananSayi,int sol, int sag)
{
    if(sag >= sol)
    {
        int orta = sol + (sag-sol)/2;
        if(gelenDizi[orta]==arananSayi)
            return orta;
        else if (arananSayi>gelenDizi[orta])
            return binarySearchR(gelenDizi, arananSayi,orta+1,sag);
        else
            return binarySearchR(gelenDizi, arananSayi,sol,orta-1);
    }

    else
        return -1;
}

//bubble sort- kabarcık sıralama
int sirala(int gelenDizi[],int diziUzunluk)
{
    int temp;
    for(int i=0; i<diziUzunluk ; i++ )
    {
        for(int j=0; j<diziUzunluk-1-i; j++)
        {
            if(gelenDizi[j]>gelenDizi[j+1])
            {
                // 2-4
                // i-i+1
                //temp=4
                temp=gelenDizi[j];
                gelenDizi[j]=gelenDizi[j+1];
                gelenDizi[j+1]=temp;
            }
        }
    }
    printf("\nDizi elemanları yazdiriliyor.\n");
    for(int k = 0; k<diziUzunluk; k++)
        printf("%d\t",gelenDizi[k]);
}



int main()
{
    int dizi [] = {2,1,4,3,5,7,6};
    int aranan = 2;
    //length, len, count
    int elemanSayisi = sizeof(dizi) / sizeof(dizi[0]);


    sirala(dizi, elemanSayisi);
    return 0;
}

            

Comments

Popular Posts