Сделать домашней|Добавить в избранное
 

Сайт, посвящен программированию,
исходникам разных программ и
известным алгоритмам

 
Исходники программ » Языки программирования » C/C++ » Сортировка массива методом прямого выбора в C
ivi.ru [CPS]
на правах рекламы

Сортировка массива методом прямого выбора в C

Автор: admin от 21-03-2012, 10:46

Поставленная задача:
Напишите программу, сортирующую элементы массива по возрастанию методом прямого выбора.

Алгоритм:
Допустим дан числовой массив из N элементов. Надо отсортировать его по возрастанию. Находим наибольший элемент в массиве и меняем его местами с последним. Уменьшаем количество рассматриваемых элементов на 1 (так как последний элемент уже на свеем месте). Повторяем операцию для уменьшенного на единицу массивы. Итак N-1 раз.

Исходный код:

#include <stdio.h>
#define SZ 5
#include <conio.h>
void main ()
{
clrscr ();
int a[SZ];
int i, min, j, buf; k;
printf ("Vvedite massiv (v odnoi stroke %i",SZ);
printf ("celix chisel)i nawmite <Enter>\n");
printf ("->");
//заполнение массива вручную
for (k=0;k < SZ;k++)
scanf ("%i",&a[k]);
printf ("Sortirovka...\n");
//the end
//операции с массивом по сортировке
for (i=0;i < SZ-1;i++)
{
min=i;
for (j=i+1;j<SZ;j++)
if (a<a[min])
min=j;
buf=a;
a=a[min];
a[min]=buf;
for(k=0;k<SZ;k++)
printf ("%i",a[k]);
printf("\n");
}
printf ("Massiv otsortirovan\n");
for (k=0;k<SZ;k++)
printf("%i",a[k]);
printf("\n");
printf("\n");
getch ();
}


Теория:
Есть ещё...

Сортировка методом "Пузырька"


Сравниваются попарно стоящие рядом элементы и если порядок их следования не правильный, то они обмениваются местами. Если они упорядочены, то ничего не делается, иначе эти два элемента обмениваются местами. Потом сравниваются следующие два элемента и так до конца массива. В результате отдельных попарных перестановок макс(мин) перемещается в конец массива. Он движется по массиву как пузырек всплывает в воде, когда встречаются элементы с макс(мин) значением.
После того, как макс(мин) передвинут в конец массива, вся процедура повторяется с начала и до элемента с индексом N-1 раз, затем до индекса N-2 и т.д.

 

Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий