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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2011, 09:51   #1
Wolt
 
Регистрация: 24.08.2011
Сообщений: 4
Радость Аналог сортировки Шелла

[CENTER]Понимаю, что возможно эта тема немного слабовата уровнем, но все же, хотелось бы узнать в чем ошибка...Вообщем решил написать алгоритм, похожий на сортировку Шелла...И вообщем не получается(в инете искал, но все же там немного другой метод, да и хочется покопаться в том, что не получается )...Только прошу без строгой критики, ведь все Вы учились когда-то))... S_SH.rar
Wolt вне форума Ответить с цитированием
Старый 24.08.2011, 10:22   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Включите код - using namespace std;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.08.2011, 11:13   #3
Wolt
 
Регистрация: 24.08.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Включите код - using namespace std;
Ну не в этом же дело, ведь пространство имен std я указывал вручную, да и тем более с "using namespace std;" не сортирует! Есть еще варианты?
Wolt вне форума Ответить с цитированием
Старый 24.08.2011, 19:54   #4
Alkagolik
Пользователь
 
Аватар для Alkagolik
 
Регистрация: 03.08.2009
Сообщений: 77
По умолчанию

во-первых (на работу не повлияет, но... язык-то с++)
Код:
int main()
{
     .......
     return 0;
}
во-вторых ошибка в первой строке кода
Код:
const a_s=100;//array_size вместо int const a_s = 100;
после исправления работает.
Дальше посмотрим. Это так и должно быть? т.е. Вы осознанно декрементите переменную j. После каждого декремента ее знаечние перезаписывается на -1.
Код:
while(array[j]<array[j--])
{					
	int k=array[j];
	array[j]=array[j--];
	array[j--]=k;
}
а вот тут
Код:
if(array[j]!=array[0])
наверное подразумевается
Код:
if(j!=0)

Последний раз редактировалось Alkagolik; 24.08.2011 в 20:22.
Alkagolik вне форума Ответить с цитированием
Старый 25.08.2011, 06:50   #5
Wolt
 
Регистрация: 24.08.2011
Сообщений: 4
По умолчанию

Насчет третьей...Я так понял, что в этом случае нужно не декрементировать, а написать array[j-1]...Задумано таким образом показать предшествующий элемент массива...Но даже при исправлении всех выше сказанных ошибок, компилируется, но не работает..Показывает два раза изначальный массив...

Последний раз редактировалось Wolt; 25.08.2011 в 07:32.
Wolt вне форума Ответить с цитированием
Старый 25.08.2011, 10:37   #6
Wolt
 
Регистрация: 24.08.2011
Сообщений: 4
По умолчанию

Я нашел ошибку, всем спасибо)
Wolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация сортировки Шелла beginner Помощь студентам 7 24.05.2015 23:47
Метод Шелла gennadii Помощь студентам 4 15.06.2011 11:00
Сложность и время работы сортировки Шелла lega4 Помощь студентам 0 11.04.2011 11:02
Написать сортировки массива- прямое включение и шелла, и сравнить какая из них работает быстрее Noiziya Помощь студентам 3 30.12.2010 01:00
Метод сортировки Шелла SVadiks Помощь студентам 2 03.11.2009 20:17