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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 23:48   #1
...Dreamer...
 
Регистрация: 07.05.2009
Сообщений: 5
По умолчанию помогите плиззз с паскалем

Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой отсортировать одномерный массив a[1..10], состоящий из элементов целого типа в порядке убывания методом «вставки». Исходные данные массива вводятся с клавиатуры.
...Dreamer... вне форума Ответить с цитированием
Старый 11.05.2009, 00:35   #2
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Цитата:
Ответ: "Сортировка вставками"
Сортировка вставками — простой алгоритм сортировки. Хотя этот метод сортировки намного менее эффективен чем более сложные алгоритмы (такие как быстрая сортировка), у него есть ряд преимуществ:
* прост в реализации
* эффективен на небольших наборах данных
* эффективен на наборах данных, которые уже частично отсортированы
* это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы)
* может сортировать список по мере его получения
На каждом шаге алгоритма мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор пока набор входных данных не будет исчерпан. Выбор очередного элемента, выбираемого из исходного массива, произволен; может использоваться практически любой алгоритм выбора.
Пример:

const N=255;
type array_type=array [1..N] of integer;

procedure InsertSort(var x:array_type);
var i, j, buf:integer;
begin
for i:=2 to N do
begin
buf:=x[i];
j:=i-1;
while (j>=1) and (x[j]>buf) do
begin
x[j+1]:=x[j];
j:=j-1;
end;
x[j+1]:=buf;
end;
end;

Код прост, думаю разберешься.
http://www.cyberforum.ru/pascal/thread13936.html
bondik вне форума Ответить с цитированием
Старый 11.05.2009, 00:42   #3
necky
Пользователь
 
Аватар для necky
 
Регистрация: 11.08.2007
Сообщений: 69
По умолчанию

Допустим у тебя есть массив.

3 5 6 7 1 4

Метод вставки работает следующим образом.
Берем элемент i+1 и сравниваем с i, если он меньше выдвигаем его вперед.
наращиваем i и опять сравниваем как в первый раз. И так далее. Сравнение происходит как в игре в картах. Ставим карту на свое место.

3 5 6 7 1 4 - 0 шаг
3 5 6 1 7 4 - 1 шаг
3 5 1 6 7 4 - 1.1
3 1 5 6 7 4 - 1.2
1 3 5 6 7 4 - 1.3
1 3 5 6 4 7 - 2 шаг
1 3 5 4 6 7 - 2.1
1 3 4 5 6 7 - 2.2

Вот и все. Исходник на нужном языке ищи в википедии. Успехов!!
Советовать можно лишь в деле, в котором сам собираешься участвовать.
necky вне форума Ответить с цитированием
Старый 11.05.2009, 01:04   #4
...Dreamer...
 
Регистрация: 07.05.2009
Сообщений: 5
По умолчанию

спасибо!!!!!!!!!
...Dreamer... вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите плиззз Julia-21 Паскаль, Turbo Pascal, PascalABC.NET 0 21.01.2009 19:34
помогите плиззз 11twin11 Общие вопросы Delphi 4 06.05.2008 12:39
помогите плиззз Ded Общие вопросы Delphi 2 16.11.2006 19:56