
Добавил:
Kolobok
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
//Sortirovka massiva strok metodom prostih vstavok
void sort(char* arr[],int N) //funsia sortirovki vstavkami
{
int i,j,g; char *b; int h=N/2-1,m=N/3+1;
for (int k=m;k>=0;k--)
{h=h/3-1; g=h-1;
for(j=(h);j<=m;j++)
{
i=j-g; b=arr[j];
do
{
if( (strlen(arr[i]))>=(strlen(b)) ) //4
{arr[i+g]=b;} //6
else {(arr[i+g])=(arr[i]);i=i-g;};} //5
while(i>=0);
};
};
}
void main()
{int i=0;
char *mas[1000];
float max=0;
clrscr();
cout << "\n\nEta programma osuschestvljaet sortirovku massiva strok v porjadke ubjivanija\n";
cout << "dlin strok \n";
do
{cout<<" vv. chislo n, ono dolgno bit >=1 i celim \n\n";
cin>>max;}
while ((max-int(max)!=0) || (max<1));
for(i=0; i<max; i++)
{
cout<<"Vvedite "<<(i+1)<<" element massiva \n";
cin>>mas[i];
mas[i+1]=mas[i]+(strlen(mas[i])+ 1);
};
clrscr();
cout<<"ishodnii massiv:"<<endl;
for(i=0; i<max; i++)
cout<<"mas["<<(i+1)<<"]: '"<<mas[i]<<"' \n";
sort(mas,max);
cout<<endl<<"otsortirovannii massiv:"<<endl;
for(i=0; i<max; i++)
cout<<"mas["<<(i+1)<<"]: '"<<mas[i]<<"' \n";
getch();
}