Sortiranje podataka - Selection sort

" Selection sort " program je namenjen za sortiranje podataka uz upotrebu istoimenog ALGORITMA Ukoliko ste pročitali opis ove vrste algoritma za sortiranje podataka onda ni analiza dole priloženog programskog koda neće biti problem. Na dole prikazanom linku možete preuzeti besplatnu izvršnu verziju programa, ili ga odmah startovati odabirom opcije "Open" i klikom na Selection sort.

Na kraju strane se nalazi link za preuzimanje kompletnog projekta za IDE SharpDevelop C# 4.0. Ukoliko koristite ovo integrisano okruženje, kada preuzmete projekat i otvorite ga možete pogledati kompletan program i menjati ga po želji.

Programski kod :

/*

* Created by SharpDevelop.

* User: Perić Željko

* Date: 04.02.2012

* Time: 12:47

*

* Једноставан програм за сортирање бројева од највећег ка најмањем уз помоћ такозваног "Selection sort" алгоритма.

* Najlakši je za razumevanje ali je najsporiji od svih algoritama kada je u pitanju utrošeno vrema za sortiranje.

* Napravljen za sortiranje brojeva u opadajućem redu , od najvećeg ka najmanjem.

* Broj članova niza je ograničen na 5, a vrednost članova niza mora biti iz skupa realnih brojeva.

* Koristi upoređivanje vrednosti prvog elementa u nizu s vrednošću ostalih

* i ukoliko je neki od njih veći vrši zamenu mesta, tako da najveća vrednost posle prvog prolaza kroz ceo niz,

* dolazi na prvo mesto u nizu. Ova operacija upoređivanja se ponavlja,

* stim što se kreće od drugog , zatim trećeg , četvrtog do poslednjeg člana niza.

* Tako da se sledeća najveća vrednost u nizu dovodi na drugo, treće, četvrto i peto mesto u nizu.

*

* Врло брзо можете да промените програм и да добијете сортиран низ у растућем редоследу

*

* уместо if (Niz[Brojač] < Niz[X]) поставите if (Niz[Brojač] > Niz[X])

*

* или приликом исписа сортираног низа поставите бројач на 6 ,

* а затим га умањујте за један и Х на 0 , а затим га увећавајте за један

*

* Brojač = 6;

* X = 0;

* while (Brojač != 1)

* {

* Brojač = Brojač - 1;

* X = X + 1;

* Console.WriteLine(X.ToString() + ". члан низа је : " + Niz[Brojač].ToString());

* }

*

*/

using System;

namespace Selection_sort

{

class Program

{

public static void Main(string[] args)

{

//

// Variable declaration

//

double [] Niz = new double[10]; // niz od 10 elemenata , пажња први елемент има индекс 0 , Niz[0] !!

double Najveći = 0; // pomoćna varijabla za promenu vrednosti tokom upoređivanja

double Element = 0; // pomoćna varijabla za unos podataka

bool Realan = false; // pomoćna varijabla za proveru da li je unet realan broj

int Brojač = 0; // brojač elemenata 1

int X = 0; // brojač elemenata 2

//

// Постави наслов , величину , боју слова ,обриши екран и испиши наслов

//

Console.Title = " Selection sort ";

Console.SetWindowSize(80,40);

Console.ForegroundColor = ConsoleColor.Green;

Console.Clear();

Console.WriteLine("****************************************************************");

Console.WriteLine();

Console.WriteLine(" Програм за сортирање бројева уз помоћ Selection sort алгоритма");

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

//

// Унеси вредност елемената у низ

//

while (Brojač != 5)

{

Brojač = Brojač + 1;

Console.Write("Унесите вредност " + Brojač + ". члана низа : ");

Realan = double.TryParse(Console.ReadLine(),out Element);

while (Realan == false)

{

Console.WriteLine("Пажња ! Нисте унели број !");

Console.Write("Унесите вредност " + Brojač + ". члана низа : ");

Realan = double.TryParse(Console.ReadLine(),out Element);

}

Niz[Brojač] = Element;

}

//

// Сортирај чланове низа

//

Brojač = 0;

while (Brojač != 4)

{

Brojač = Brojač + 1;

X = Brojač;

while (X != 5)

{

X = X + 1;

if (Niz[Brojač] < Niz[X])

{

Najveći = Niz[X];

Niz[X] = Niz[Brojač];

Niz[Brojač] = Najveći;

}

}

}

//

// Испиши вредност чланова сортираног низа од највећег ка најмањем

//

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

Console.WriteLine("Сортиран низ од највећег ка најмањем");

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

Brojač = 0;

while (Brojač != 5)

{

Brojač = Brojač + 1;

Console.WriteLine(Brojač.ToString() + ". члан низа је : " + Niz[Brojač].ToString());

}

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

//

// Испиши вредност чланова сортираног низа од најмањег ка највећем

//

Console.WriteLine("Сортиран низ од најмањег ка највећем");

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

Brojač = 6;

X = 0;

while (Brojač != 1)

{

Brojač = Brojač - 1;

X = X + 1;

Console.WriteLine(X.ToString() + ". члан низа је : " + Niz[Brojač].ToString());

}

Console.WriteLine();

Console.WriteLine("****************************************************************");

Console.WriteLine();

// Крај програма

Console.Write("Press any key to continue . . . ");

Console.ReadKey(true);

}

}

}