Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Pascal (Паскаль)
Восстановить пароль Регистрация

Ответ Создать новую тему
 
08.06.2009, 16:05   #1
Ne-angel-2-11-90
Форумчанин
Регистрация: 04.06.2009
Сообщений: 71
Репутация: 0 (0)
произвести сортировку заданного целочисленного массива Anm по возрастанию
08.06.2009, 16:05
AdAgent
Объявления
08.06.2009, 16:10   #2
sheka
Босс
Регистрация: 03.06.2009
Сообщений: 751
Репутация: 161 (128)
Лучшие ответы: 4
извините что на украинском - но это можна и не читать.

8. Алгоритми впорядкування табличних величин. "Метод бульбашки".
"Метод бульбашки" основується на перестановці сусідніх чисел. Для впорядкування елементів масиву здійснюємо повторні проходи по масиву, кожного разу переміщаючи найменший елемент частини масиву, що залишився, на початок.
Переміщення елементів масиву здійснюється таким чином: переглядаємо масив справа наліво, порівнюючи пари сусідніх чисел; якщо числа в парі розміщені в порядку зростання, то залишаємо їх без зміни, а якщо ні  то міняємо їх місцями.
В результаті першого проходу найменше число буде поставлене на поча¬ток масиву. У другому проході такі операції виконуються над елементами з останнього до другого, у третьому  з останнього до третього і т.д. Впо¬рядкування масиву буде закінчено, якщо при проході масиву не виконувати¬меться жодної перестановки елементів масиву. Факт перестановки фіксується з допомогою допоміжної змінної ргар, яка на початку має значення 0 і набуває значення 1 тоді, коли виконуватиметься перестановка в якій-небудь парі. Прапорець PRAP використовується з метою економії часу в тому випадку, коли частина елементів масиву наперед впорядкована.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Program BUBBLESORT; 
Uses CRT;
Const N=10; {кількість елементів масиву}
 Var A:array[l..N] of integer; {опис масиву}
 I,j:integer; {допоміжні змінні}
 ADOP:integer; {допоміжна змінна}
  PRAP:integer; 
   begin 
       clrscr;
writeln('Введіть елементи масиву');
 for i:=l to N do begin
write('A[',i, ']='); readln(A[i]); end;
writeln('Масив до сортування:'); writeln;
for i:=l to N do write(A[i]:5); writeln;
i:=2;
repeat 
prap:=0;
for j:=N downto і do begin
if A[j]<A[j-l] then begin
ADOP:=A[j-l];
A[j-1]:=A[j];
                                              A[j]:=ADOP;
                                                PRAP:=l; 
                                                             end; 
                                                        end; 
                      i:= i+1;
until PRAР=0; 
writeln;
     writeln('Macив після сортування:');
     writeln; 
     for i:=l to N do write(A[i]:5); 
     writeln; 
     end.
9. Впорядкування елементів масиву методом вибору мінімального елемента.
Даний метод основується на тому, що масив переглядається перший раз. Знаходиться мінімальний елемент цього масиву, який міняється місцями з першим елементом масиву.
Другий раз масив переглядається, починаючи з дру¬гого елементу. Знову знаходиться мінімальний елемент, який міняється місцями з другим елементом масиву. Даний процес виконується до тих пір, поки не буде поставлено на місце N-1-ий елемент.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 Program MINSORT; 
 Uses CRT;
 Const N= 10; {кількість елементів масиву} 
Var A:array[l..n] of integer; {опис масиву}
 I,j:integer; {допоміжні змінні}
 Amin:integer; {допоміжна змінна для }
{мінімального елементу масиву}
           l: integer; {порядковий номер}
                            {мінімального елементу масиву} 
      begin 
            ClrScr;
writeln('Введіть елементи масиву');
 for і:=1 to N do begin
   writeln('введи елемент масиву');
    readln(A[i]);
                            end;
writeln('Масив до сортування:'); writeln;
for i:=l to N do write(A[i]:5); 
writeln; 
 for i:=l to N do begin
Amin:=A[i];
L:=i;
                      J:=i+1;
                   While j<=n do
                             begin
                                 If Amin>A[j] then
                                                             Begin
                                                                Amin:=a[j];
                                                                 L:=j;
                                                              End;
                                   J:=j+1;
                              End;
                     A[l]:=A[i];
                    A[i]:=Amin;
                      end;
                writeln;
writeln('Масив після сортування:'); 
writeln;
     for i:=l to N do write(A[i]:5); 
     writeln;
     end.
10. Метод швидкого сортування.
В основу метода покладена ідея послідовного дроблення масиву на частини.
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Const N=10;
Var A: array[1..N] of integer;
        i:integer;
Procedure Quick(first,last:integer);
Var i,j,x,w,linteger;
Begin
I:=first;
J:=last;
X:=A[(first+last) div 2];
Repeat
While A[i]>x do i:=i+1;
While x>A[j] do j:=j-1;
If i<=j then begin
                      W:=A[i];
                       A[i]:=A[j];
                       A[j]:=w;
                        I:=i+1;
                        J:=j-1;
                         End;
until i>j;
if first<j then Quick(first,j);
if i<last then quick(i,last);
end;
 Begin
For i:=1 to N do begin
Writeln(‘введи елемент масиву’);
Readln(A[i]);
End;
Quick(1,N);
writeln('Масив після сортування:'); 
writeln;
 for i:=l to N do write(A[i]:5); 
 writeln;
end.
Другие темы раздела
Pascal Комбинированный тип данных(Записи)
имеется список: название, автор, год издания, издательство - в текстовом файле фильтр: вывести все названия книг по издательству, и результат записать в другой файл; так же сделать сортировку любого вида(по автору/по году издания); Ребята, помогите пожалуйста... не понимаю этот тип данных......
Матрицы. Pascal
массив Anm пронумерован построчно слева направо и сверху вниз натуральными числами от1 до n*m. По задпнному номеру клетки определить номера всех клеток, сопракасающихся с ней углами
08.06.2009, 16:34  [ТС]   #3
Ne-angel-2-11-90
Форумчанин
Регистрация: 04.06.2009
Сообщений: 71
Репутация: 0 (0)
ничего себе!! придется долго разбираться...
СПАСИБО!!
15.06.2009, 08:01   #4
Xanat0s
Новичок
Регистрация: 13.05.2009
Сообщений: 6
Репутация: 1 (1)
Вы чё блин тут в глаза долбитесь?! Написано же в задании сортировать МАССИВ,а не ВЕКТОР! Сходите к окулисту!
15.06.2009, 09:43   #5
Modeus
Новичок
Регистрация: 23.05.2009
Сообщений: 3
Репутация: 0 (0)
Массив-это и вектор и матрица Но я полностью согласен с предыдущим мнением,т.к. сказано что дан Массив Anm...значит матрица
15.06.2009, 09:43
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C++ Сортировка массива по возрастанию
Помогите пожалуйста, а то выходит какой-то бред. Нужно напистаь прогу, а именно: имеется двумерный массив размерностью NxN, где N = 11. 2.Элементы массива задать случайным образом в диапазоне 0...50 (rand, этому я научилась;)). Отсортировать все столбцы методом выбора так, чтобы элементы в них...
С++ для начинающих Sacrament 06.06.2014 16:26
Java SE Сортировка массива по возрастанию
не могу сортировать массив. Первую строку вывести в возрастающим варианте на вторую строку. В этом коде просто выведены две строки, надо сортировать вторую строку по возрастанию. package Aiba; public class Lab3 { public static int random(int a, int b){ return...
Java SE (J2SE) Alginsky 02.04.2014 16:14
Assembler Сортировка массива по возрастанию
помогите осуществить сортировку массива в порядке возрастания. допустим был первый массив из n чисел и из него исключили какие-то числа по определенному признаку. Вот не знаю как сделать именно сортировку по возрастанию
Assembler: i8080/8085/KP580 Nixzah0 13.03.2014 18:23
Turbo Pascal сортировка массива по возрастанию
Дан целочисленный массив из 10-ти элементов. Отсортировать по возрастанию. Желательно делать не особо замудренную, без функций и т.д., на уровне техникума.
Turbo Pascal afsdsome 01.04.2013 17:22
Pascal Сортировка массива. Упорядочить нечетные элементы массива по возрастанию методом обмена
Упорядочить одномерный массив по возрастанию, методом обмена. (по возрастанию должны быть толбко нечётные элементы)
Pascal (Паскаль) Divin 23.05.2010 09:38
Опции темы

Текущее время: 00:29. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.