1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Vardes |
27.03.2006 15:53
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 131 Пол: Мужской Репутация: 0 |
Есть у нас лаборант, которой мы сдаём наши проги. Сегодня пытался отчитаться по сортирове методом Шелла.Бегло прочитал я теорию и сделал вот что: пока шаг в сортировке был >1 я сортировал элементы пузырьковым методом,ну а потом напоследок сортировал методом вставок,когда шаг=1.
Ну а лаборант наш-это не лектор, что в методичке написано вначале,так оно и должно быть, а там в течение всех шагов массив сортируется методом вставок(ещё и иллюстрация есть).Хотя в конце есть пометка на то,что в качестве базового алгоритма сортировки может использоваться любой другой. Вот я и хотел у народа спросить, имею ли я право на любой алгоритм сортировки.И могу ли я доказать преподу,что я прав (Уже впринципе неважно) Сообщение отредактировано: Vardes - 29.03.2006 23:15 |
![]() ![]() |
| Vardes |
29.03.2006 23:21
Сообщение
#2
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 131 Пол: Мужской Репутация: 0 |
У меня теперь такой вопрос к знатокам.Сортировка Шелла как я правильно понимаю заключается в том,что мы из массива вытаскиваем подмассив с определённым шагом, его сортируем и опять заносим в основной массив.Так?
Вот в инете нашёл алгоритм сортировки, якобы Шелла как говорят: Код Procedure Sort( var a : seq); Var d, i, t : integer; k : boolean; { пpизнак пеpестановки } begin d:=N div 2; { начальное значение интеpвала } while d>0 do begin { цикл с yменьшением интеpвала до 1 } { пyзыpьковая соpтиpовка с интеpвалом d } k:=true; while k do begin { цикл, пока есть пеpестановки } k:=false; i:=1; for i:=1 to N-d do begin { сpавнение эл-тов на интеpвале d } if a[i]>a[i+d] then begin t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t; { пеpестановка } k:=true; { пpизнак пеpестановки } end; { if ... } end; { for ... } end; { while k } d:=d div 2; { yменьшение интеpвала } end; { while d>0 } end; Но если тут присмотреться, то на самом деле мы просто попарно сравниваем элементы отстоящие др. от др. на определённый шаг.Но это же не сортировка Шелла,или я ошибаюсь? |
Vardes Всё те же сортировки 27.03.2006 15:53
volvo Чем же это не сортировка Шелла по-твоему? Реализов... 29.03.2006 23:37
Vardes Дело то в том,что мы просто попарно сравниваем эл-... 30.03.2006 7:40
red_alex По-моему не обязательно вытаскивать подмассив и со... 30.03.2006 11:37
Vardes Я может с вами и соглашусь, тока вот преподы со мн... 30.03.2006 16:12
volvo Вот реализация ShellSort:
Сортировка массива метод... 30.03.2006 16:14![]() ![]() |
|
Текстовая версия | 15.11.2025 11:53 |