Главная » 2020 » Февраль » 25 » Массив. Упорядочивание по возрастанию и убыванию
09:17
Массив. Упорядочивание по возрастанию и убыванию

#include <iostream>
#include <ctime>
using namespace std;
void vvod(int *x, int m);
void vivod(int *x, int m);
int max(int *x, int m);
int min(int *x, int m);
int nomer(int *x, int m, int chislo);
void vozr(int *x, int m);
void vozr2(int *x, int m);
void ub(int *x, int m);
void ub2(int *x, int m);
int main(){
    srand(time(0));
    const int n=50;
    int a[n];
    vvod(a,n); 
    vivod(a,n);
    ub2(a,n);
    cout<<"New Mas"<<endl;
    vivod(a,n);
    system("pause");
    return 0; 
}
void ub2(int *x, int m)
{
    int ma,nmax;
    for (int k=0;k<m;k++)
    {
        ma=max(x+k,m-k); 
        nmax=nomer(x+k,m-k,ma);
        x[nmax+k]=x[k]; x[k]=ma;
    }    
}
void ub(int *x, int m)
{
    int ma,nmax;
    for (int k=0;k<m;k++)
    {
        ma=x[k]; nmax=k;
        for (int i=k;i<m;i++)
            if (x[i]>ma)
            {
                ma=x[i]; nmax=i;
            }
        x[nmax]=x[k]; x[k]=ma;
    }
        
}
void vozr2(int *x, int m)
{
    int mi,nmin;
    for (int k=0;k<m;k++)
    {
        mi=min(x+k,m-k); 
        nmin=nomer(x+k,m-k,mi);
        x[nmin+k]=x[k]; x[k]=mi;
    }    
}
void vozr(int *x, int m)
{
    int mi,nmin;
    for (int k=0;k<m;k++)
    {
        mi=x[k]; nmin=k;
        for (int i=k;i<m;i++)
            if (x[i]<mi)
            {
                mi=x[i]; nmin=i;
            }
        x[nmin]=x[k]; x[k]=mi;
    }
        
}
void vvod(int *x, int m)
{
    for (int i=0;i<m;i++) x[i]=rand()%90+10;
}
void vivod(int *x, int m)
{
    for (int i=0;i<m;i++) cout<<x[i]<<" ";
    cout<<endl;
}
int nomer(int *x, int m, int chislo)
{
    int n=0;
    for (int i=0;i<m;i++)
        if (x[i]==chislo)
        {
            n=i; break;
        }
    return n;
}
int min(int *x, int m){
    int MIN=x[0];
    for (int i=0;i<m;i++)
        if (x[i]<MIN) MIN=x[i];
    return MIN;
}
int max(int *x, int m){
    int MAX=x[0];
    for (int i=0;i<m;i++)
        if (x[i]>MAX) MAX=x[i];
    return MAX;
}

Просмотров: 338 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar