|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
20.05.2012, 18:13 | #1 (permalink) |
Новичок
Регистрация: 20.05.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Сортировка в одномерном массиве
n элементов методом вставки отсортировать по убыванию только те элементы, которые стоят на четных позициях . Например было 742918 стало---792814 program ryryr; uses crt; var a: array [1..5] of integer; i,j,e,g:integer; begin for i:=1 to 5 do begin write('a[',i,']='); readln(a[i]); end; for i:=2 to 5 do begin e:=a[i]; j:=1; while e<a[j] do inc(j); for g:=i-1 downto j do a[g+1]:=a[g]; a[j]:=e; end; for i:=1 to 5 do write(a[i],' ');:tehnari_ru_942 : end. |
20.05.2012, 18:13 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие топики помогут вам в решении проблемы В одномерном массиве, состоящем из n вещественных элементов, вычислить Сортировка в Vista Поиск двух MAX в одномерном массиве Сортировка по алфавиту |
20.05.2012, 20:08 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
var a:array[0..255] of integer; N,i,j:byte; e:integer; begin write('N= '); readln(N); for i:=1 to N do begin write('a[',i,']= '); readln(a[i]); end; a[0]:=32000; for i:=1 to N do write(a[i]:8); writeln; writeln; for j:=1 to (N div 2) do begin i:=2*j; while a[i]>a[i-2] do begin e:=a[i]; a[i]:=a[i-2]; a[i-2]:=e; dec(i,2); end; end; for i:=1 to N do write(a[i]:8); readln end. P.S. Ах вот что - выясняется, что речь о Паскале ABC. Об сразу про это написать - и речи нет, ручонки отвалятся. Ладно, тогда замените a[0]:=32000; на a[0]:=2000000000; |
|
20.05.2012, 20:52 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
При сортировке массива методом вставки удобно добавить спереди (в нулевую позицию) "вспомогательный" элемент - заведомо бОльший (при выстраивании по убыванию, как в Вашем случае) или заведомо меньший (при выстраивании по возрастанию) всех прочих элементов. Тогда программа получается проще и компактнее. Вот я это и применил. В формате Integer таковым (округленно) для нормального Паскаля является 32000, а для этого ущербно-ублюдочного АВС - 2000000000.
|
20.05.2012, 21:44 | #5 (permalink) |
Новичок
Регистрация: 20.05.2012
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Благодарю за подробную консультацию
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|