Метод пузырька (метод обменной сортировкой с выбором)

Идея метода отражена в его названии. Шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то они меняются местами. При этом самые «легкие» (наименьшие) элементы массива «всплывают» наверх, а самые «тяжелые» – «тонут». Алгоритмически это можно реализовать следующим образом. Весь массив просматривается снизу вверх, стоящие рядом элементы меняются в том случае, если «нижний» элемент меньше, чем «верхний». Таким образом, наверх «всплывет» самый «легкий» элемент всего массива. Так нужно повторять для оставшихся неотсортированными N-1 элементов (т.е. для тех, которые лежат «ниже» первого) и т.д. Алгоритм достаточно прост:

Алгоритм (в порядке возрастания) Программа
объявление вещ: t[10], x, цел: i, j, k, flag для i=0 до 10-1 шаг 1 ввод t[i] все_для i для i=10-1 до 1 шаг -1 //обмена не было flag=0 для j=0 до i-1 шаг 1 если t[j]>t[j+1] //меняем местами два соседних //элемента x=t[j] t[j]=t[j+1] t[j+1]=x //обмен состоялся flag=1 все_если все_для j если flag==0 выход из цикла по i // не было // обмена все_если все_для i для i=0 до 10-1 шаг 1 вывод t[i] все_для i   #include "stdio.h" #include "math.h" #define N 10 int main ( ) { float t[N], x; int i, j, k, flag; // ввод массива t с клавиатуры for ( i=0; i<=N-1; i++ ) { printf ("x[%i]= " ,i ); scanf ("%f", &t[i]); } for ( i=N-1; i>=1; i-- ) { //обмена не было flag=0; for ( j=0; j<=i-1; j++ ) { if (t[j]>t[j+1]) { // элементы меняются // местами x=t[j]; t[j]=t[j+1]; t[j+1]=x; //обмен состоялся flag=1; } } if(flag= =0) //если обмена не было, то нужно //выйти из цикла break; } // вывод массива t на экран for (i=0; i<=N-1; i++) printf ("%.3f ", t[i]); printf ("\n"); return 1; }







Дата добавления: 2015-08-08; просмотров: 649;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.