Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2013, 14:09   #1
bielov
 
Регистрация: 07.03.2013
Сообщений: 3
По умолчанию Сортировка Шелла

Нашел в интернете множество материалов по данной сортировке, и не читая коды написанные другими людьми решил самостоятельно попробовать написать свой. Как вы думаете может ли данный код называться "сортировкой Шелла".
Код:

//...
//...
d=16;
d=d/2;
while (d>0)
{
for (i=d; i<16; i++)
{
	nom=i;
	ch=mas[i];
	for (j=i-d; j<=i-d; j++)
	{
		if (mas[j]>mas[i])
		{
			mas[i]=mas[j];
			nom=j;
		}
	}
	mas[nom]=ch;
}
d=d/2;
}
//...
bielov вне форума Ответить с цитированием
Старый 07.03.2013, 14:43   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Я немного упрощу код?
Код:
d=8;
while (d>0)
{
for (i=d; i<16; i++)
{
	if (mas[i-d]>mas[i])
	{
		std::swap(mas[i], mas[i-d]);//ch=mas[i]; mas[i]=mas[i-d]; mas[i-d]=ch;
	}
}
d=d/2;
}
Возьмите массив {15, 14, 13, 12, 7, 10, 9, 8, 11, 6, 5, 14, 3, 2, 1, 0}. У меня не отсортировало (инверсия 9-8 сохранилась).
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Сортировка Шелла adidas Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2011 15:20
Сортировка Шелла QuadroX Фриланс 1 29.05.2010 03:52
сортировка Шелла pilot76 Помощь студентам 2 17.08.2009 18:05