Помогни ни да направим Uroci.net по - богат! Добави урок
Категории Други уроци Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS и HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic JavaScript Ajax 3ds Max Maya 3D C++
C++
Sound Forge Gimp SWiSH

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

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

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

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

}


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

smurf4eto на 03.09 2007 в 23:48ч.
Урокът е написан перфектно, обяснен е, и всеки начинаещ програмист би разбрал написаното от автора.

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

реклама

© Всички права запазени. 2006-2008. Created by: Site.bg
Препоръчваме: IT Новини | Кино и игри | Запознанства | Lafche.net | Тунинг Портал | uchenik.com | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | AnimeS-bg.com | Фото Форум | Запознанства | Мрежа от приятели | IT Light | Spodeli.net | Фото-Култ | Dalavera.net | IDG.BG | Teenproblem.net | mucunki.com | Блог - Образование | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Казанлък.Com | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com