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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.01.2012, 14:25   #1
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию Сортировка массива методом пузырька

Собственно дана задача:


Цитата:
3. Создать массив целых чисел из N=15 элементов. Заполнить его случайным образом, числами, в диапазоне от 0 до 40. Вывести его на экран. Отсортировать его методом простого обмена (“пузырька”) по невозрастанию (каждый следующий элемент меньше или равен предыдущему) и вывести отсортированный массив на экран.

В чём заключается смысл сортировки пузырьком?
Искал в интернете, там только с добавлением True & False!
Мне это не надо.......
bonjovi вне форума
Старый 30.01.2012, 14:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот, например, так можно:

Код:
const N = 15;

var
  A : array[1..N] of integer;
  i, j, t : integer;
begin
  Randomize;
  {заполнение случайными числами в диапазоне от 0 до 40}
  for i:=1 to N do A[i] := Random(41);
 
  {сортировка массива методом простых обменов ("пузырька") }
  for i:=1 to N-1 do
    for j:=i+1 to N do
      if A[i] <= A[j] then begin
        t := A[i];
        A[i] := A[j];
        A[j] := t;
      end;

  вывод полученного массива A

конец.
Serge_Bliznykov вне форума
Старый 30.01.2012, 14:38   #3
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию

эм.... Я думал это линейная сортировка!


А тогда линейная сортировка это как!!?!

Последний раз редактировалось bonjovi; 30.01.2012 в 14:42.
bonjovi вне форума
Старый 30.01.2012, 14:50   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от bonjovi
А тогда линейная сортировка это как!!?!
извините, я на этот вопрос не могу ответить: я не знаю такой сортировки..

и посмотрел на википедии - Алгоритм сортировки,
тоже не увидел такой...
Serge_Bliznykov вне форума
Старый 30.01.2012, 19:19   #5
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию

Тема ещё актуальна!

Решите задачу!
bonjovi вне форума
Старый 30.01.2012, 19:28   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вообще-то
Сортировка методом пузырька и линейная сортировка - это ОДНО И ТОЖЕ!
Так, что думаю вопросов нет! Задача решена?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 30.01.2012, 19:37   #7
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию

Нет! Вы не правы! У меня есть две похожие задачи:


№1
Цитата:
2. Создать массив целых чисел из N=15 элементов. Заполнить его случайным образом, числами, в диапазоне от 0 до 20. Вывести его на экран. Затем отсортировать его методом прямого выбора (линейная сортировка) по неубыванию (каждый следующий элемент больше или равен предыдущему) и вывести на экран отсортированный массив.

№2
Цитата:
3. Создать массив целых чисел из N=15 элементов. Заполнить его случайным образом, числами, в диапазоне от 0 до 40. Вывести его на экран. Отсортировать его методом простого обмена (“пузырька”) по невозрастанию (каждый следующий элемент меньше или равен предыдущему) и вывести отсортированный массив на экран.

Задачи почти одинаковые! Не стали бы писать ОДНО И ТОЖЕ!
bonjovi вне форума
Старый 30.01.2012, 19:55   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

да кстати, извините, но я не прав!
Тогда смотрим сюда!
Цитата:
Идея линейной сортировки по невозрастанию заключается в том, чтобы, последовательно просматривая весь массив, отыскать наибольшее число и поместить его на первую позицию, обменяв его с элементом, который ранее занимал первую позицию. Затем просматриваются все остальные элементы массива и выполнятся аналогичная операция по отбору из рассматриваемой части массива максимального элемента и обмену местами этого элемента и первого в рассматриваемой части и т.д.
сортировка производится так
Код:
for i := 1 to n-1 do
    for j := i+1 to n do
        if a[i] < a[j] then
        begin
            temp := a[i];
            a[i] := a[j];
            a[j] := temp;
        end;
Терь метод пузырька

Цитата:
Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, «всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма.
сортировка
Код:
    repet
        isFound := false;
        for i := 1 to n -1 do
            if a[i] < a[i+1] then
            begin
                isFound := true;
                temp := a[i];
                a[i] := a[i+1];
                a[i+1] := temp;
            end;
    until isFound = false;
Есть ещё вопросы?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 30.01.2012, 20:23   #9
bonjovi
Пользователь
 
Регистрация: 15.01.2012
Сообщений: 46
По умолчанию

Спасибо за старание и помощь! Можете закрывать тему!
bonjovi вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. Сортировка массива методом пузырька divine_excuse Помощь студентам 1 29.12.2011 00:05
сортировка методом шейкера и пузырька Степан sapral Помощь студентам 1 12.01.2011 19:02
Сортировка методом пузырька fygas1991 Общие вопросы C/C++ 5 15.11.2009 21:39
сортировка методом двухпроходного пузырька. Net* Общие вопросы C/C++ 3 26.05.2008 07:17