#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;
}
|