Сортировка Шелла
Сортировка Шелла.
Решая на практике задачи по программированию мне попалась задача написать сортировку методом Шелла. На мой взглят относительно других методов сортировки и этого метода весьма интересный подход.....
#include <iostream>
#include <stdio.h>
using namespace std;
int Puzirek_sort(int *array,int len)
{
int i,j,c;
int k=0;
for (i=len;i>1;i--)
{
k=0;
for (j=1;j<i;j++)
if (array[j]<array[j-1])
{
c=array[j];
array[j]=array[j-1];
array[j-1]=c;
k=1;
};
if (k==0) return 0;
};
};
int ShellSort(int *array,int len)
{
long d=len,i,j;
int c;
do
{
d=d/2;
printf("S shagom:");
printf("%d",d);
printf("\n");
i=0;
while ((j=i+d)<len)
{
if (array[i]>array[j])
{
c=array[i];
array[i]=array[j];
array[j]=c;
};
i++;
};
}
while (d>1);
Puzirek_sort(array,len);
};
int main()
{
int k[100],p=0;
while(cin>>k[p])p++;
printf("source: ");
for (int i=0; i<p;i++)
printf("%d ",k[i]);
printf("\n");
ShellSort(k,p);
printf("Sorted: ");
for (int t=0; t<p;t++)
printf("%d ",k[t]);
printf("\n");
};
Решая на практике задачи по программированию мне попалась задача написать сортировку методом Шелла. На мой взглят относительно других методов сортировки и этого метода весьма интересный подход.....
#include <iostream>
#include <stdio.h>
using namespace std;
int Puzirek_sort(int *array,int len)
{
int i,j,c;
int k=0;
for (i=len;i>1;i--)
{
k=0;
for (j=1;j<i;j++)
if (array[j]<array[j-1])
{
c=array[j];
array[j]=array[j-1];
array[j-1]=c;
k=1;
};
if (k==0) return 0;
};
};
int ShellSort(int *array,int len)
{
long d=len,i,j;
int c;
do
{
d=d/2;
printf("S shagom:");
printf("%d",d);
printf("\n");
i=0;
while ((j=i+d)<len)
{
if (array[i]>array[j])
{
c=array[i];
array[i]=array[j];
array[j]=c;
};
i++;
};
}
while (d>1);
Puzirek_sort(array,len);
};
int main()
{
int k[100],p=0;
while(cin>>k[p])p++;
printf("source: ");
for (int i=0; i<p;i++)
printf("%d ",k[i]);
printf("\n");
ShellSort(k,p);
printf("Sorted: ");
for (int t=0; t<p;t++)
printf("%d ",k[t]);
printf("\n");
};
Комментарии
Отправить комментарий