green39675 green39675 - 8 months ago
641 0

No description

C++

Pretrazivanja i sortiranja

//Sortiranja
void selection(int p[],int n)
{
    for(int i=0;i<n;i++)
        {
            int m=i;
            for(int j=i+1;j<n;j++)
            {
                if(p[j]<p[m])
                    m=j;
            }
            std::swap(p[m],p[i]);
        }
}

void bubble(int p[6],int n)
{
    for(int i=0;i<n;i++)
    {
        for(int j=n-1;j>i;j--)
            if(p[j]<p[j-1])
                std::swap(p[j],p[j-1]);
    }
}

void insertion(int p[6],int n)
{
    for(int i=1;i<n;i++)
    {
        int j=i, temp=p[i];
        while(j>0 && temp<p[j-1])
        {
            p[j]=p[j-1];
            j--;
        }
        p[j]=temp;
    }
}

//Pretrazivanja
int probSearch(double p[], int n, double elt)//Zadatak 1
{
    int i=0;
    while(p[i]!=elt && i<n)
        i++;
    if(p[i]==elt)
    {
        if(i>0)
            swap(p[i],p[i-1]);
        return i;
    }

    else
        return -1;
}

int guardSearch(double p[], int n, double elt)//Zadatak 2
{
    p[n]=elt;
    int i=0;
    while(p[i]!=elt)
        i++;

    if(i<n)
        return i;
    else
        return -1;
}

int orderdSearch(double p[], int n, double elt)//Zadatak 3
{
    int i=0;
    while(elt>p[i] && elt<=p[n-1])
        i++;
    if(p[i]==elt)
        return i;
    else
        return -1;
}

int binary(double p[], int n, double elt)
{
    int prvi=0, zadnji=n-1, srednji;
    while(prvi<=zadnji)
    {
        srednji=((prvi+zadnji)/2);
        if(p[srednji]==elt)
            break;
        else if(p[srednji]>elt)
            zadnji=srednji-1;
        else// if(p[srednji]<elt)
            prvi=srednji+1;
    }
    if(p[srednji]==elt)
        return srednji;
    else
        return -1;
}