Text: |
ФІО = GVA
Запитання:/*
Тема: Методи сортування
Завдання: Розробити програму методом шейкерного сортування
Програма повинна забезпечувати введення чи генерацію вихідних даних і візуалізувати результати сортування.
*/
#include <iostream>
#include <stdio.h>
#define N 10
using namespace std;
void autoentermas(int a[], size_t length) {
randomize();
for (int i = 0 ; i < length ; i++)
{
a[i] = rand() % 40;
}
return ;
}
void printmas(int a[], size_t length) {
for (int i = 0 ; i < length ; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return ;
}
void sort_sheker(int count,int *mass)
{
int i,left,right,b;
int t;
for(right=count-1,left=0,b=-1;b!=0;)//устанавливаем правую и левую границу
{
b=0;
for(i=left;i<right;i++)//двигаемся слева направо
{
if(mass[i]>mass[i+1])
{
t=mass[i];
mass[i]=mass[i+1];
mass[i+1]=t;
b=i;
}
}
right=b;
for(i=right;i>left;i--)//двигаемся справа налево
{
if(mass[i-1]>mass[i])
{
t=mass[i];
mass[i]=mass[i-1];
mass[i-1]=t;
b=i;
}
}
left=b;
printmas(mass,count);
}
}
int main(){
int mas[N];
autoentermas(mas, N);
cout<<"CURRENT -> "; printmas(mas,N);
sort_sheker(N,&mas[0]);
cout<<"RESULT -> "; printmas(mas,N);
system("pause");
return 0;
}
====================================
|