|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2008, 16:59 | #1 |
Регистрация: 20.12.2008
Сообщений: 4
|
5 задач на сортировку массивов
Здравствуйте. Сегодня задали решить 5 задач на сортировку массивов. Т.к. мои познанию в паскале стремятся к минимуму, прошу вас помочь мне их решить:
Примечание: a,b - это переменные. i,k,j, i+1, k+1, j+1-это всё индексы, не множители. 1. Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив между k-м и (k+1)-м элементами первого, не используя дополнительный массив. 2. Даны две последовательности a1<=a2<=...<=an и b1<=b2<=...<=bm. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей. Дополнительный массив не использовать. 3. Сортировка выбором. Дана последовательность чисел a1,a2,...an. Требуется переставить элементы так, чтобы они были расположены по убыванию. Для этого в массиве, начиная с первого, выбирается наибольший элемент и ставится на первое место, а первый - на место наибольшего. Затем, начиная со второго, эта процедура повторяется. Написать алгоритм сортировки выбором. 4. Сортировка обменами. Дана последовательность чисел a1, a2,...an. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа ai и ai+1. Если ai>ai+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не окажутся расположенными в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количество перестановок. 5. Сортировка вставками. Дана последовательность чисел a1, a2,...an. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть a1,a2,...,ai - упорядоченная последовательность, т.е. a1<=a2<=...<=ai. Берётся следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была также возрастающей. Процесс производится до тех пор, пока все элементы от i+1 до n не будут перебраны. Буду очень благодарен за помощь. Последний раз редактировалось Kremnik; 20.12.2008 в 18:02. |
20.12.2008, 17:08 | #2 | |
Реанимируюсь...
Участник клуба
Регистрация: 19.07.2007
Сообщений: 1,445
|
Цитата:
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе... P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows" |
|
20.12.2008, 17:15 | #3 | ||
Регистрация: 20.12.2008
Сообщений: 4
|
Цитата:
Цитата:
|
||
20.12.2008, 18:10 | #4 |
Пользователь
Регистрация: 20.12.2008
Сообщений: 46
|
1) Вроде работает
program mas; uses crt; var mas1,mas2:array[1..1000] of integer; k,i:integer; begin clrscr; writeln ('Введите k'); readln (k); for i:=1 to 2*k do mas1[i]:=-random(30)+random(30); for i:=1 to 3*k do mas2[i]:=-random(30)+random(30); for i:=1 to k do begin write (mas1[i],' '); end; for i:=1 to 3*k do write (mas2[i],' '); for i:=k+1 to 2*k do write (mas1[i],' '); readkey end. 3) Один из вариантов program sort; uses crt; var mas:array[1..10] of integer; i,j,max,ii,c:integer; begin clrscr; for i:=1 to 10 do begin mas[i]:=-random(30)+random(30); write (mas[i],' '); end; writeln; writeln; for i:=1 to 10 do begin max:=mas[i]; for j:=i to 10 do if mas[j]>=max then begin ii:=j; max:=mas[j]; end; c:=mas[i]; mas[i]:=mas[ii]; mas[ii]:=c; end; for i:=1 to 10 do write (mas[i],' '); readkey end. 4) program obmen; uses crt; var mas:array[1..10] of integer; i,j,kil,c:integer; begin clrscr; kil:=0; for i:=1 to 10 do begin mas[i]:=-random(30)+random(30); write (mas[i],' '); end; writeln; for i:=1 to 10 do for j:=1 to 9 do if mas[j]>mas[j+1] then begin c:=mas[j]; mas[j]:=mas[j+1]; mas[j+1]:=c; kil:=kil+1; end; for i:=1 to 10 do write (mas[i],' '); writeln; writeln ('Количество ',kil); readkey end. Последний раз редактировалось Teor; 20.12.2008 в 18:50. |
21.12.2008, 00:54 | #5 |
Регистрация: 20.12.2008
Сообщений: 4
|
Спасибо огромное!
|
21.12.2008, 01:35 | #6 |
Регистрация: 20.12.2008
Сообщений: 4
|
Хм...что то как то третье помоему не так работает. Задача какая: при запуске программы (ctrl+f9) надо ввести значения элементов массива. При запуске (alt+f5) должны выводится значения массива по убыванию. Соответственно по данному алгоритму (выбором).
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите переделать файловую сортировку на сортировку динамич. списков | Taisja | Помощь студентам | 2 | 15.06.2008 16:10 |
Задача на сортировку... | Sota | Помощь студентам | 4 | 25.05.2008 19:26 |
Про сортировку | AlexMori | Общие вопросы Delphi | 3 | 11.01.2008 01:51 |
Задача на сортировку массива | Acid | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 17.06.2007 00:16 |