You are on page 1of 8

Сортиране на масиви

Сортиране на масив
 Да се сортира масив a0, a1, ..., an-1, където a е
името на масива, а n е размерът му, означава
така да се пренаредят елементите, че за новия
масив да е в сила a0 ≤ a1 ≤ ... ≤ an-1 или a0 ≥ a1
≥ ... ≥ an-1.

 В първия случай масивът е сортиран във


възходящ, а във втория случай в низходящ
ред.
МЕТОД НА ПРЯКАТА СЕЛЕКЦИЯ

Този метод реализира следната идея:

 Намира се k, така че ak = min{ a0, a1, …, an-1 }.


 Разменят се стойностите на ak и a0, така че на
първо място в масива се установява най-малкият
му елемент.
 Намира се k, така че ak = min{ a1, a2, …, an-1 }.

 Разменят се стойностите на ak и a1. Така на второ


място в масива се установява следващият по
големина елемент и т.н.
 Горните действия се повтарят, докато всички

елементи установят мястото си.


МЕТОД НА ПРЯКАТА СЕЛЕКЦИЯ
Брой елементи 5
Стъпка 0

Стъпка 1

Стъпка 2

Стъпка 3
МЕТОД НА ПРЯКАТА СЕЛЕКЦИЯ
for (int i = 0; i < n-1; i++)
{
int k=i;//позиция на минималния елемент
for (int j = i+1; j < n; j++)
{
if (arr[j]<arr[k])
k=j;
}
swap=arr[k];
arr[k]=arr[i];
arr[i]=swap;/*типът на променливата swap съвпада с типа
на елементите на масива*/

}
Метод на мехурчето
Този метод реализира следната идея:
 В редицата числа се сравняват всеки два съседни

елемента(първият с втория, вторият с


третия,..предпоследният с последния). Ако елементът с по-
малък индекс е по-голям, те се разменят. Така след първото
преглеждане на масива елементът с най-голяма стойност
заема последно място в редицата.
 В подредицата, без последния елемент, действията се

повтарят. След второто преглеждане на масива


предпоследният и последният елемент вече са подредени
 На всяка следваща стъпка се разглежда подредицата от

останалите елементи, без подредените вече в предните


стъпки.
 Горните действия се повтарят, докато всички елементи

установят мястото си.


Метод на мехурчето

Брой елементи 5
Метод на мехурчето
for (int i = 0; i < n-1; i++)
for (int j =0; j < n-1-i; j++)
if (arr[j]>arr[j+1])
{
swap=arr[j];
arr[j]=arr[j+1];
arr[j+1]=swap;
}

You might also like