Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
tentakle
Новичок
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 4
08.06.2009, 22:26     Файл и метод "пузырька"
  #1
Произвести сортировку файла целых чисел методом "пузырька".
AdAgent
Объявления
08.06.2009, 22:26
sheka
Босс
161 / 128 / 4
Регистрация: 03.06.2009
Сообщений: 751
08.06.2009, 23:03
  #2
8. Алгоритми впорядкування табличних величин. "Метод бульбашки".
"Метод бульбашки" основується на перестановці сусідніх чисел. Для впорядкування елементів масиву здійснюємо повторні проходи по масиву, кожного разу переміщаючи найменший елемент частини масиву, що залишився, на початок.
Переміщення елементів масиву здійснюється таким чином: переглядаємо масив справа наліво, порівнюючи пари сусідніх чисел; якщо числа в парі розміщені в порядку зростання, то залишаємо їх без зміни, а якщо ні  то міняємо їх місцями.
В результаті першого проходу найменше число буде поставлене на поча¬ток масиву. У другому проході такі операції виконуються над елементами з останнього до другого, у третьому  з останнього до третього і т.д. Впо¬рядкування масиву буде закінчено, якщо при проході масиву не виконувати¬меться жодної перестановки елементів масиву. Факт перестановки фіксується з допомогою допоміжної змінної ргар, яка на початку має значення 0 і набуває значення 1 тоді, коли виконуватиметься перестановка в якій-небудь парі. Прапорець PRAP використовується з метою економії часу в тому випадку, коли частина елементів масиву наперед впорядкована.
Код Code
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.
tentakle
Новичок
0 / 0 / 0
Регистрация: 08.06.2009
Сообщений: 4
08.06.2009, 23:59  [ТС]
  #3
работы с файлом нэ?
sheka
Босс
161 / 128 / 4
Регистрация: 03.06.2009
Сообщений: 751
09.06.2009, 00:52
  #4
Цитата Сообщение от tentakle Посмотреть сообщение
работы с файлом нэ?
??? не понял.
lexus_ilia
Форумчанин
3021 / 685 / 12
Регистрация: 24.09.2008
Сообщений: 1,530
09.06.2009, 02:59
  #5
sheka, А знаете у нас оффициальный язык на форуме русский, хотелось бы в дальнейшем видеть от Вас сообщения с русским текстом.
Puporev
Модератор
42384 / 30898 / 1859
Регистрация: 18.05.2008
Сообщений: 65,871
09.06.2009, 07:18
  #6
Сортировка в типизированном файле идет почти как в линейном массиве, только вместо прямого присваивания нужно читать элементы(read) и вставлять(write).
Код Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
reset(g);
for i:=0 to filesize(g)-2 do
for j:=i+1 to filesize(g)-1 do
  begin
    seek(g,i);
    read(g,x);
    seek(g,j);
    read(g,y);
    if x>y then
      begin
       sp:=x;
       x:=y;
       y:=sp;
       seek(g,i);
       write(g,x);
       seek(g,j);
       write(g,sp);
      end;
   end;
close(g);
sheka
Босс
161 / 128 / 4
Регистрация: 03.06.2009
Сообщений: 751
09.06.2009, 09:59
  #7
lexus_ilia, предоставленая информация является цитатой из источника. изините конечно, но переводить ее желания нет. а может она кому-нибудь пригодится?
Puporev
Модератор
42384 / 30898 / 1859
Регистрация: 18.05.2008
Сообщений: 65,871
09.06.2009, 10:02
  #8
предоставленая информация является цитатой из источника.
Это видимо единственный источник с описанием пузырьковой сортировки.
Русские пока до этого не доперли, а также всякие там англичане и прочие. Будете здесь пропагандировать величие своей научной мысли и мовы, вылетите.
lexus_ilia
Форумчанин
3021 / 685 / 12
Регистрация: 24.09.2008
Сообщений: 1,530
09.06.2009, 10:56     Файл и метод "пузырька"
  #9
sheka, Вы поймите я ничего не имею против других языков, мой родной язык тоже не русский, но всё-же я придерживаюсь правил форума. И советую внимательно прочитать сообщения уважаемого Puporev'a .
Yandex
Объявления
09.06.2009, 10:56
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Ответов Автор Дата
Pascal Написать программу проверки правильности написания сочетаний "жи", "ши", "ча", "ща", "чу", "щу". Исправить ошибки
дан текст.написать программу проверки правильности написания сочетаний "жи", "ши", "ча", "ща", "чу", "щу". исправить ошибки.
Pascal (Паскаль) 10 ZaRinKa97 09.05.2014 10:17
Pascal ABC Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и "колун"
Из слова "клоун" путем "вырезок" и "склеек" его букв получить слова "уклон","кулон" и "колун".
Pascal ABC 1 Шульга Галина 21.12.2012 15:04
Pascal Типизированный файл: Создать файл F1, компонентами которого являются "m" одинаковых чисел, а именно "min" элемент из файла F
Создать типизированный файл F, содержащий последовательность целых чисел. Создать файл F1, компонентами которого являются "m" одинаковых чисел, а именно "min" элемент из файла F.
Pascal (Паскаль) 1 natasha_rud 07.11.2012 14:19
Turbo Pascal Задача на массив, метод "Пузырька".
Заполнить массив из 10 элементов случайными числами в интервале и отсортировать по возрастанию. Нужно решить методом "Пузырька".
Turbo Pascal 1 boris370 10.02.2012 16:05
Pascal ABC Даны текстовый файл "F" и строка "S". Получить все строки файла "F", содержащие в качестве фрагмента строку "S".
Плиз помогите написать прогу: Даны текстовый файл "F" и строка "S". Получить все строки файла "F", содержащие в качестве фрагмента строку "S". Thanks verry much!!!
Pascal ABC 1 M@steR 26.12.2011 18:30
Pascal Решение заданий типа "Array","Matrix","String","File","Text"""
большая просьба помочь решить где-то около 35-40 (из 100) задач (мне не понятных) типа массив и матрица я буду рад (да и если у кого будет желание) если кто нибудь будет давать еще пояснения к...
Pascal (Паскаль) 4 tork113 08.12.2011 01:00
Turbo Pascal Метод "пузырька"
Десяти студентам 5-го курса была предложена анкета о том, знание каких из прочитанных курсов могут потребоваться в будущей работе. Список прочитанных курсов: математический анализ, алгебра,...
Turbo Pascal 5 Юрий Бадюн 17.03.2011 13:48
Pascal В массиве n×n в каждой строке упорядочить элементы по возрастанию, используя метод "пузырька"
В массиве n×n в каждой строке упорядочить элементы по возрастанию, используя метод "пузырька". помогите плиз!!!
Pascal (Паскаль) 1 Nynka 06.12.2009 23:48
Опции темы

Текущее время: 05:28. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.