Подреждането на елементите на масив според даден критерий се нарича сортиране на масив.
Задача: Даден е масив от цели числа arr[n]={20,8,32,6,1}. Да се сортира масивът във възходящ ред и да се изведе на екрана.
Сортиране на масив във възходящ ред означава да се подреди така, че всеки елемент от масива да е по-голям или равен на предходния.
За решението на задачата може да се приложи следния основен метод за сортиране.
Метод на пряка селекция<!--[endif]-->
Този метод реализира следната идея:
1. Намира се минималният елемент в редицата от числа и го разменя с първия. Така на първо място в редицата се установява минималният й елемент.
2. В подредицата, без първия елемент, действията се повтарят – намира се минималният и се разменя с втория. Така елементите до втория вече са подредени.
3. На всяка следваща стъпка се разглежда подредицата от останалите елементи, без подредените вече в предните стъпки. Действията са аналогични – намира се минималният и се разменя с първия неподреден елемент.
4. Горните действия се повтарят, докато всички елементи установят мястото си.
arr[0] arr[1] arr[2] arr[3] arr[4] min
à | 20 | 8 | 32 | 6 | 1 | ... | 1 | ... |
arr[0] arr[1] arr[2] arr[3] arr[4] min
П à | 1 | 8 | 32 | 6 | 20 | ... | 6 | ... |
arr[0] arr[1] arr[2] arr[3] arr[4] min
ОП à | 1 | 6 | 32 | 8 | 20 | ...1 | 8 | ... |
arr[0] arr[1] arr[2] arr[3] arr[4] min
ОП à | 1 | 6 | 8 | 32 | 20 | ... | 20 | ... |
arr[0] arr[1] arr[2] arr[3] arr[4] min
ОП à | 1 | 6 | 8 | 20 | 32 | ... | 20 | ... |
//Program.cpp
#include
int main()
{
const int n=5;
int arr[n]={20,8,32,6,1},min,k,swap;
for(int i=0;i
{
k=i;
min=arr[i];
for(int j=i+1;j
if(arr[j]
/* намира минималния елемент
в неподредената подредица*/
{
min=arr[j];
k=j;
}
/*разменя минималния елемент с първия
неподреден елемент от подредицата*/
swap=arr[k];
arr[k]=arr[i];
arr[i]=swap;
}
for(int k=0;k
return 0;
}