Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сортировка массивов

Сортировка массивов.

Сортировка данных является одной из важных задач в обработке массивов. Банк сортирует чеки по номеру счёта, телефонные компании сортируют свои списки по фамилиям, каждая организация должна сортировать довольно значительные объёмы данных. Для сортировки данных существует большое число алгоритмов, одним из самых простейших является пузырьковая сортировка, к достоинством, которого можно отнести легкость написания, проверки и отладки. А к недостаткам низкую производительность. Нижеприведённая программа сортирует значения массива из 10 элементов в возрастающем порядке методом пузырьковой сортировки. Наименьшее значение постепенно продвигается к началу массива, подобно пузырьку воздуха в воде, а наибольшее значение продвигается к концу массива. При каждом проходе сравниваются пара следующих друг за другом элементов. Если пара расположена в возрастающем порядке или элементы одинаковы, то мы оставляем значения без перемещения. Если пара расположена в убывающем порядке, значения в массиве меняются местами. При первом проходе наибольшее значение опустится на место нижнего элемента. Для сортировки массивов из 10 элементов нужно только 9 проходов. Сортировка выполняется с помощью цикла for. Если необходима перестановка, она выполняется тремя присваиваниями:

temp=ara[ctr1];

ara[ctr1]=ara[ctr2];

ara[ctr2]=temp;

где дополнительная переменная temp временно хранит одно из двух переставляемых значений.

Главное достоинство состоит в простоте программирования. Однако пузырьковая сортировка выполняется медленно, особенно для больших массивов.

Пример1 Отсортировать одномерный массив по возрастанию.

 

#include<iostream.h>

#define M 10

void main()

{

int ara[M];

int ctr,ctr1, ctr2,temp;

cout<<"введите элементы массива ";

for(ctr=0; ctr<M; ctr++)

Блок-схема алгоритма решения задачи бинарного поиска.

Начало

Инициализация

переменных

 
 


m=(l+f)/2

 
 


да нет

m==q?

 

нет да

ara[m]==p?

break

нет да

P>ara[m]? k=p

 

l=m-1 f=m+1

 

 
 

 


q=m

 
 

 


 

while (k==0)? да

 

 
 


нет

if(k==0)?

номер элемента 0

 
 


конец

 

cin>>ara[ctr];

cout<<"вывод неотсортированного массива ";

for(ctr=0; ctr<M; ctr++)

cout<< ara[ctr]<<" ";

for (ctr1=0; ctr1<(M-1); ctr1++) //сортировка массива

{

for(ctr2=(ctr1+1); ctr2<M; ctr2++)

{

if(ara[ctr1]>ara[ctr2])

//переставить местами

{

temp=ara[ctr1];

ara[ctr1]=ara[ctr2];

ara[ctr2]=temp;//всплывание наименьшего значения

}

}

cout<<"вывод после 1 шага массива ";

for (ctr=0; ctr<M; ctr++)

{

cout<<ara[ctr]<<" ";

 

}

break;

}

 

cout<<"вывод отсортированного массива ";

for (ctr=0; ctr<M; ctr++)

{

cout<<ara[ctr]<<" ";

 

}

}

<== предыдущая лекция | следующая лекция ==>
Обработка массивов | Многомерные массивы
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.