Помогни ни да направим Uroci.net по - богат! Добави урок

Сортиране на масиви - пряка селекция

C++ » C++
SunKiss   трудност:    видян: 27538

Подреждането на елементите на масив според даден критерий се нарича сортиране на масив.

Задача: Даден е масив от цели числа 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<<"arr["<<<"]="<<

return 0;

}



Коментари (6)

smurf4eto на 03.09 2007 в 23:48ч.
Урокът е написан перфектно, обяснен е, и всеки начинаещ програмист би разбрал написаното от автора.
yimanya на 04.06 2008 в 13:20ч.
За начинаещи по добре да ползват sort
Ето една примерна програма за сориране на масив:
#include
#include\\Библиотека, нужна за ползване на sort()
using namespace std;
int i,n,A[100];
int main()
{
cin>>n;//Въвеждаме броя на елементите на масива
for(i=0;i>A[i];
sort(A,A+n); //Сортиране на масива;
for(i=0;i
Glitter на 04.10 2008 в 14:56ч.
А някой може ли да ми обясни защо след като напиша програмата точно както е зададена тук ми дава 12 грешки? Ползвам Microsoft Visual Studio C++
BlueForever на 11.11 2008 в 16:34ч.
Защото има грешки в самия код.
venceto на 09.09 2009 в 18:49ч.
Е след #include... не пиши нищо,те всичките програмисти знаят за кво става дума сигурно.Иначе както yimanya е обяснил с sort си е чиста работа.
dragong на 11.03 2013 в 20:17ч.
Хора, някой може ли да постне пълния код? Пълен индианец съм..

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com