Сортировка Шелла

Сортировка Шелла.
Решая на практике задачи по программированию мне попалась задача написать сортировку методом Шелла. На мой взглят относительно других методов сортировки и этого метода весьма интересный подход.....



#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");

};

Комментарии

Популярные сообщения из этого блога

Нахождение сильно связных компонентов в графе (python)

СЛАУ - метод Гауса (С++)