Главная
Регистрация
Вход
Суббота
23.11.2024
05:26
Приветствую Вас, Гость | RSS

Меню сайта

Друзья сайта

Категории раздела
1. Основы работы в среде C++ Builder.Основы языка Си++ [9]
2. Операторы ветвления и операторы передачи управления [4]
3. Операторы цикла и операторы передачи управления [5]
4. Одномерные массивы [3]
5. Многомерные массивы [3]
6. Указатели.Динамическое распределение памяти [6]
7. Отладка программы [3]
8. Функции [8]
9. Строки [5]
10. Функция Main [2]
11. Типы данных,определяемые пользователем [5]
12. Потоки ввода/вывода [7]
13. Основы объектно-ориентированного программирования [5]
Приложения [11]

Форма входа

Наш опрос
Оказался ли Вам полезным наш сайт?
Всего ответов: 464

Пользователи

Онлайн всего: 7
Гостей: 7
Пользователей: 0

 Каталог статей 
Главная » Статьи » Лекции по C++ » 4. Одномерные массивы

PDA-версия страницы

2. Программа пузырьковой сортировки

Программа пузырьковой сортировки

Часто требуется расположить элементы массива по возрастанию или по убыванию. Это можно сделать с помощью следующей программы:

 

const int N=5;

int i,j,t,massiv[N];

cout<<RUS("Введите одномерный массив целых чисел:\n");

for(i=0;i<N;i++)cin>>massiv[i];      //ввод массива

  for(i=N-1;i>0;i--)         //начало сортировки

        for(j=0;j<i;j++)

          if(massiv[j]>massiv[j+1])

          {

            t=massiv[j];                //тело внутреннего цикла

            massiv[j]=massiv[j+1];        //

            massiv[j+1]=t;            //

          }       //конец сортировки

cout<<RUS("\nМассив упорядоченный по возрастанию:\n");

for(i=0;i<N;i++)  //вывод массива

cout<<"\nmassiv["<<i<<"] = "<<massiv[i];       //вывод массива

 

Собственно алгоритм выделен комментариями "начало сортировки" и "конец сортировки". Его суть заключается в последовательной перестановке соседних элементов массива с целью продвижения самого большого элемента в конец массива. Этот процесс поясняется на рис. 1.1. Один проход внутреннего цикла for …(по переменной j) перемещает в конец 1 элемент. На следующем проходе, благодаря уменьшению на 1 переменной внешнего цикла (i), установленный в конце массива элемент уже не рассматривается. Его рассмотрение не изменило бы результата, но выполнение операций требует времени, которое тратить впустую нецелесообразно. Так после выполнения N-2 внутренних циклов массив будет упорядочен по возрастанию.

Тело внутреннего цикла алгоритма решает задачу взаимной перестановки двух элементов массива. Задача решается перемещением значения переменных через третью вспомогательную переменную (t).



Рис. 1.1

Перемещение самого большого элемента по массиву подобно всплытию пузырька воздуха в воде. Это и определило название алгоритма.

Алгоритм может иметь несколько модификаций. Например, упорядочение не по возрастанию, а по убыванию или перемещение элемента не в конец, а в начало массива. Для лучшего понимания рекомендуется реализовать эти модификации и сделать так, чтобы для пользователя все сообщения были одинаковы независимо от варианта программы.

Категория: 4. Одномерные массивы | Добавил: Admin (10.09.2011)
Просмотров: 13618 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Помочь сайту!
рублей WMR
WebMoney на кошелек R407507742179

Партнёры сайта

Закладки

Поиск по сайту

Copyright H-L-L.RU © 2024
Сделать бесплатный сайт с uCoz