Sunteți pe pagina 1din 30

ATESTAT INFORMATIC

LUCRARE PENTRU ATESTAREA


COMPETENELOR PROFESIONALE

FIER: TEORETIC
PROFIL: REAL
SPECIAZARE: MATEMATIC-INFORMATIC

Elev: Radu Miruna


Profesor indrumtor: Hatmanu Mihaela
ceul: Colegiul Naional ,,tefan cel
Mare",Suceava
Sesiunea: mai 2016

ATESTAT INFORMATIC

Metode de sortare
Cuprins
1.Introducere

1.2 Ce este HTML?

1.3 Ce este CSS?

2.Descriere lucrrii
2.1 Prima pagin

2.2 Alte pagini 9


2.2.1 Formatarea textului HTML
12
2.2.2 Inserarea
imaginilor
..13
2.2.3 Inserare
video
.14

3. Prezentarea
lucrrii..15
3.1 Pagina de
nceput
15
3.1.1 Bubble
Sort
16
3.1.2 Merge
Sort
..18
2

ATESTAT INFORMATIC
3.1.3 Selection
Sort
.20
3.1.4 Insertion
Sort
22

4.Utilizare
25
5. Resurse hard si soft
necesare..27
5.1 Programe utilizate
..28

6.Biografie

.28

1.Introducere
1.1 Motivul alegerii temei
Am ales ca tem pentru site-ul meu prezentarea
conceptului de sortare ,precum i prezentarea a 4
metode de sortare importante ,ntruct mi s-au prut utile
aceste informaii pentru oricine i dorete s le neleag
i s le nvee.
Din proprie experien mrturisesc c ,dei mai
exist anumite site-uri cu astfel de seciuni , cu i despre
metodele de sortare , niciunul nu conine toate aspectele

ATESTAT INFORMATIC

necesare n vederea nelegerii ori sunt la un nivel mai


academic , greu de asimilat pentru unii dintre noi.
Astfel , am ales s creez un site educativ , unde am
reuit s cuprind toate aspectele necesare n vederea
nelegerii celor 4 metode de sortare(descriere, exemplu
cu expcaie , algoritm n C++ i un video expcativ).
Acest site este dedicat oricrei persoane doritoare de
a-i aprofunda cunotiinele n domeniul informaticii sau
chiar a matematicii ,cu predominare elevilor de ceu
pentru care aceste informaii constituie o materie
obgatorie i esenial.

1.2 Ce este HTML?


HTML este o abreviere de la Hypertext Markup Language i reprezint
scheletul oricrei pagini de Web. HTML nu este un mbaj de programare. Nu vei
lucra aici cu variabile, expresii, tipuri de date, structuri de control. HTML este un
mbaj descriptiv, prin care sunt descrise elementele structurale ale paginii de Web:
titlurile, stele, tabelele, paragrafele, legturile cu alte pagini, precum i aspectul pe
care l are pagina din punct de vedere grafic. n fond, HTML este modul n care i
comunicam browserului ce elemente dorim s introducem n pagina Web i care
este aspectul acestora.
4

ATESTAT INFORMATIC

HTML este unul dintre primele elemente fundamentale ale WWW ( World
Wide Web ), descriind formatul primar n care documentele sunt distribuite i
vzute pe Web. Multe din trsturile lui, cum ar fi independena fa de platforma,
structurarea formatrii i legturile hipertext, fac din el un foarte bun format pentru
documentele Internet i Web. Primele specificaiile de baz ale Web-ului au fost
HTML, HTTP i URL. HTML a fost dezvoltat iniial de Tim Berners-Lee la CERN
n 1989. HTML a fost vzut ca o posibitate pentru fizicienii care utizeaz
computere diferite i schimbe ntre ei informaie utiznd Internetul. Erau prin
urmare necesare cteva trsturi: independena de platform, posibiti hypertext i
structurarea documentelor. Independena de platform nseamn ca un document
poate fi afiat n mod asemntor de computere diferite (deci cu fonte, grafica i
culori diferite ), lucru vital pentru o audien att de variat.

1.3 Ce este CSS?


Ce este CSS?
CSS este acronimul pentru Cascading Style Sheets.
Ce pot s fac cu CSS?
CSS este un mbaj (style language) care definete "layout-ul" pentru
documentele HTML. CSS acoper culori, font-uri, margini (borders), nii,
nlime, lime, imagini de fundal, poziii avansate i multe alte opiuni.
HTML este de multe ori folosit necorespunztor pentru a crea layoutul
site-urilor de internet. CSS ofer mai multe opiuni, este mai exact i
sofisticat. n plus, este suportat de toate browserele actuale.
Care este diferena dintre CSS i HTML?
HTML este folosit pentru a structura coninutul n timp ce CSS este
folosit pentru a format coninutul.
5

ATESTAT INFORMATIC
n perioada de nceput a web-ului, HTML era folosit numai pentru
structura textului. Textul se putea marca cu taguri precum i pentru a
marca titlul sau un paragraf. Odat cu creterea popularitii web-ului
designeri au nceput s caute diferite posibiti de a adaug layout
documentelor onne. Pentru a rspunde acestor cerine, productorii de
browsere (n acea vreme Microsoft i Netscape) au inventat noi taguri HTML
precum care difer fa de tagurile originale HTML prin faptul c definesc
layoutul i nu structura.
n acelai timp, separarea site-urilor de prezentare pentru documente
de coninutul documentelor uureaz foarte mult ntreinerea lor.

Ce avantaje aduce CSS?


CSS a reprezentat un element revoluionar n lumea web-designului.

Beneficiile concrete includ:


- controlarea layoutului documentelor dintr-o singur pagin de
stiluri,
- control mai exact al layoutului,
- apcare de layouturi diferite pentru tipuri media diferite (ecran,
printare, etc),
- tehnici numeroase i sofisticate.

2.Descriere lucrrii
Adobe Dreamweaver (cunoscut anterior ca Macromedia Dreamweaver) este
o apcaie de dezvoltare web a companieiamericane Adobe Systems, disponibil att pentru
MS Windows, ct i pentru Apple Mac OS. Versiunile recente includ suport pentru
tehnologii web cum ar fi CSS, JavaScript, PHP, Cold Fusion, ct i cadre ASP.
Dreamweaver s-a bucurat de un larg succes nc de la sfritul anilor 1990 i momentan
deine aproximativ 80 % din piaa editoarelor HTML. Produsul poate fi rulat pe variate platforme
software: Mac OS, Windows, dar suport n acelai timp i platforme UNIX cu ajutorul unor
emulatoare software cum ar fi Wine.

ATESTAT INFORMATIC
Ca orice alt
editor WYSIWYG, Dreamweaver poate
ascunde detaile de implementare a
paginilor HTML, fcnd astfel posibil
crearea cu uurin a acestora i de ctre
utizatorii neexperimentai.
Dreamweaver permite folosirea
majoritii browserelor instalate
pe calculatorul utizatorului, pentru a
previzuaza situl webcreat. De asemenea
conine i cteva utitare pentru
administrarea siturilor, cum ar fi cele
pentru a gsi i modifica un paragraf sau o nie de cod, n ntregul sit, pe baza oricror
parametri specificai de ctre
utizator. Cu ajutorul panourilor de stare se poate crea cod JavaScript fr a avea
cunotine de programare.
Un aspect foarte ludat al Dreamweaver-ului l reprezint arhitectura sa extensibil.
Extensiile sunt mici programe pe care orice dezvoltator le poate scrie (de obicei n HTML i
JavaScript) i pe care oricine le poate descrca i instala, acestea aducnd un spor de
performan i funcionatate mbuntit programului

2.1 Prima pagina


Prima pagina a lucrrii se poate ncrca o data cu accesarea
paginii index.html care are titlul descris n urmatoarea secven
din codul sursa: titlePagina de inceput/title.
Toate structurile au fost reazate cu ajutorul unui template din
cadrul programului Adobe Dreamweaver. Cu ajutorul functiei VE a
fost mult mai uoara navigarea i accesarea paginilor pentru a
putea fi modificate.
Logo-ul primei pagini, dar i bannerele ale celorlaltor pagini
au fost create cu ajutorul programului PhotoScape.
7

ATESTAT INFORMATIC

Codul CSS pentru imagine:


h1#logo { font-size:0; ne-height:0; width:216px; height:90px;
float:left; }
h1#logo

a{display:block;height:90px;

text-

indent:-4000px;
background:url(imagini/logo.gif); }
Codul surs pentru inserarea acestei imagini:
<h1id="logo"><ahref="#">Metode

de

sortare</a></h1>

Meniul primei pagini este simplu ,fara submeniuri.


Acestea sunt: Introducere,Bubble Sort,Merge Sort,Selection
Sort,Insertion Sort,Video expcati i Despre.
Codurile CSS folosite pentru reazarea lucrrii a permis
crearea unor efecte de navigaie dinamice la trecerea cursorului
mouse-lui pe deasupra precum se poate observa n imaginea de
mai

jos.

Codul meniului:
<div id="navigation">
<ul>
<li><a
href="index.html">Introducere<span><em></em></span></a></li>
<li><a

href="metodabulelor%20.html">Bubble

Sort<span><em></em></span></a></li>

ATESTAT INFORMATIC
<li><a

href="metodaprininterschimbare.html">Merge

Sort<span><em></em></span></a></li>
<li><a

href="metodaprinselectie.html">Selection

Sort<span><em></em></span></a></li>
<li><a

href="metodaprininsertie.html">Insertion

Sort<span><em></em></span></a></li>
<li><a

href="videoexplicativ.html">Video

explicativ<span><em></em></span></a></li>
<li

class="last"><a

href="despre.html">Despre<span><em></em></span></a></li>
</ul>
</div>

Creerea slide-urilor
Un plus al paginii Web este creerea slide-urilor de pe prima
pagina.Acestea au fost create cu ajutorul codurilor CSS si
scripturilor Java,care le folosim si pentru a se incarca mai usor
pagina WEB.

Scripturi Java:
$( document ).ready( function(){
$('.sdes
1,wrap:

){

ul').jcarousel({scroll:

'both',auto:

6,initCallback:

$('#sder-navigation a').bind('cck', function()


{

_init_carousel,

var

itemFirstInCallback:_first_callback,

(this).parent().parent().find('a').index(this)

buttonNextHTML: null,

+ 1carousel.scroll( index );

buttonPrevHTML: null

return false;});};

});$('#navigation ').hover(

function _first_callback(carousel, item, idx,

function(){ $(this).find('a').add('hover') },

state) {

function(){

index

var index = idx - 1;

(this).find('a').remove('hover') }

$('#sder-navigation

ATESTAT INFORMATIC
);});function _init_carousel(carousel

a').remove('active')
$('#sder-navigation
a').eq(index).add('active');

Cod CSS:
#slider { height:298px; background:url(imagini/slider.gif); }
.slides { width:980px; height:298px; position:relative; overflow:hidden; color:#b6b6b6; }
.slides .jcarousel-clip { width:980px; height:298px; position:relative; overflow:hidden; }
.slides ul { width:980px; height:298px; position:relative; overflow:hidden; list-style-type: none;}
.slides ul li{ float:left; display:inline; width:980px; height:260px; position:relative; overflow:hidden; paddingtop:38px;}
.slide-info { float:left; width:720px; padding-top:20px;}
.slide-info h2{ padding-bottom:20px;}
.slide-info p{ padding-bottom:15px;}
.slide-image { float:right; width:219px; height:240px; }
.image1 { background:url(imagini/slide-image.png); }
#slider-navigation { height:67px; background:url(imagini/slider-nav.gif); }
#slider-navigation ul{ list-style-type: none; position:relative; width:1003px; margin-right:-23px; height:67px;}
#slider-navigation ul li{ float:left; display:inline; position:relative; margin:-35px 95px -22px 0;}
#slider-navigation ul li.last{ margin-right:0;}
#slider-navigation ul li a{ float:left; width:171px; height:79px; background:url(imagini/slide-button.png) no-repeat 0
0; position:relative;
left:-10px; color:#686767; font-size:14px; text-decoration: none; font-weight: bold; padding:45px 0 0
100px;}

#slider-navigation ul li a strong { display:block; font-size:23px; line-height:23px; color:#fff;}


#slider-navigation ul li a em{ position:absolute; top:43px; left:20px; }
#slider-navigation ul li a em.ico1 { width:58px; height:59px; background:url(imagini/ico1.png); left:28px;}
#slider-navigation ul li a em.ico2 { width:41px; height:61px; background:url(imagini/ico2.png); left:36px;}
#slider-navigation ul li a em.ico3 { width:71px; height:64px; background:url(imagini/ico3.png)}
#slider-navigation ul li a.active,
#slider-navigation ul li a:hover { background:url(imagini/slide-button-active.png); color:#a6a6a6;}
#slider-navigation ul li a.active strong,
#slider-navigation ul li a:hover strong{ color:#000; }

Cod HTML Slide navigatie


<div id="slider-navigation">
<div class="shell">
<ul>
<li><a

href="#"

class="active">PASUL

class="ico1"></em></a></li>

10

1<strong>Necesitatea

sortrilor</strong><em

ATESTAT INFORMATIC
<li><a href="#">PASUL 2<strong>Cum nelegem?</strong><em class="ico2"></em></a></li>
<li class="last"><a href="#">PASUL 3<strong>Ce e sortarea?</strong><em class="ico3"></em></a></li>
</ul>
</div>

2.2 Alte pagini


Restul paginilor sunt facute sub aceeasi forma fiecare ,
reprezentand cele 4 metode de sortare expcate: Bubble Sort,Merge
Sort ,Selection Sort si Insertion Sort ,precum si pagina cu video-uri
expcative si pagina Despre cu detaile site-ului.

Titlul este scris sub forma de:

< ins>Bubble Sort/Sortarea prin metoda bulelor< /ins>

Si centrat cu ajutorul CSS:

<style><h1 >{text-agn: center;}</style>

Descrierea este sub forma de paragrafe:<p>< fontsize="5">1.Descriere</font></p>

11

ATESTAT INFORMATIC

Mai intalnim aici lucrul cu liste si subliste( Nested list): cu bullets ;


<p><font size="5">2. Paii care trebuiesc urmai n cazul sortrii prin metoda bulelor: </font></p>
<ul>
<li>Se citesc elementele vectorului (nesortat)</li>
<li>Se creaz bucla repetitiv de parcurgere a vectorului (do...while)
<ul>
<li><u>Se iniializeaz variabila boolean</u> utilizat pentru controlul parcurgerii vectorului
</li>
<li>Se creaz bucla repetitiv (for) pentru a realiza compararea elementelor succesive ale
vectorului
<ul>
<li>Se compar elementele succesive <font color="#0066CC">(a[i] i a[i+1])</font>dac
<font color="#990000">a[i]>a[i+1]</font> atunci:
<ul>
<li><u>Se interschimb valorile</u><font color="#0066CC"> a[i] i a[i+1]</font></li>
<li><u>Se modific valoarea variabilei booleene</u></li>
</ul>
</li>
</ul>
</li>
</ul>
<li>Se afieaz elementele vectorului (sortat )</li>
</ul>
<p></p>

Liste numerotate
<li><strong><i>Cazul Mediu</i></strong>=<b>O(N<sup>2</sup>)</b></li>
<li><strong><i>Cazul defavorabil</i></strong>=<b>O(N<sup>2</sup>)</b></li>
<li><strong><i>Memorie folosita
<li><strong><i>Sortare descresctoare</i></strong>=<b><font color="red">a[i] &lt; a[i+1] </font></b> </li>
<li><strong><i>Sortare cresctoare</i></strong>=<b><font color="red">a[i] &gt; a[i+1] </font></b>
</li></i></strong>=<b>O(1)</b></li>

12

ATESTAT INFORMATIC
<li><strong><i>Stabilitate</i></strong>=<b>DA</b></li>

2.2.1 Formatarea textului HTML


Am folosit urmatoarele coduri pentru formatarea textului :

Definete text boldat


Definete text boldat

Definete text scris cursiv

em

Definete text scris cursiv

Definete text subniat

ins

Definete text subniat

big

Definete text de dimensiune mare

small

Definete text de dimensiune mic

sub

Definete text ca indice

sup

Definete text ca exponent

del

Definete ters

Atribut

Valoare

Descriere

font color=

#xxxxxx
numele_culorii
rgb(x,x,x)

- se specific culoarea textului folosind codul hexazecimal;


- se specific culoarea textului folosind numele culorii;
- se specific culoarea textului folosind codul RGB.

font face=

famia_fontului

- se specific tipul de font al textului

font size=

numr

- se specific mrimea textului printr-un numr de la 1 la 7.


Dimensiunea original a textului este de 3.

13

ATESTAT INFORMATIC

2.2.2 Inserarea imaginilor

Inserarea imaginilor se face cu Adobe DreamWeaver


,apasand din meniul Insert Image

Cod HTML:
img
src="css/imagini/Metodabulelor.jpg"widt
h="767" height="269"alt="Metoda
bulelor" /

14

ATESTAT INFORMATIC

2.2.3 Inserare video-uri

Meniul Video explicative conin o pagina care face


posibil, o dat cu accesarea sa, vizionarea unor 4
filmulee cu diferite dimensiuni, fiecare reprezentand o
expcatie a fiecarei metode de sortare.
Toate fiierele video au fost descrcate de pe cu
ajutorul aplicaiei YouTuBe Downloader, care permite
descrcarea fiierelor, ct i convertirea acestora sub
diferite extensii, precum *.avi, *.mpeg,*.mp4, *.mov,
*.mp3 si s-au convertit in FLV.
S-a evitat astfel introducerea unor link-uri spre
respectivele videouri pentru a nu fi nevoie de conexiune
la internet n timpul navigrii.Pentru a putea viziona
aceste filmulee, este nevoie de ultima versiune de Adobe
Flash Player instalata.

15

ATESTAT INFORMATIC

3. Prezentarea lucrrii: Metode de sortare


3.1 Pagina de nceput
DESCRIEREA SITE-ULUI
Acest site este dedicat persoanelor care doresc s nvee
metodele de sortare ntr-un mod uor i eficient acest lucru
reazndu-se prin informaiile primite din studiul asupra timpilor i
memoriei folosite de aceti algoritmi frecvent utizai.Algoritmii
sunt prezentai n mbajul C++ iar uurina nelegerii provine din
multitudinea de imagini dar i a videoului explicativ pentru fiecare
metod n parte.
NECESITATEA SORTRILOR
Sortarea este des folosit n lucrul cu ste. Un exemplu de
folosire a sortrii l reprezint motoarele de cutare web, care
folosesc astfel de algoritmi (Google, Yahoo, MSN). Exist diferii
algoritmi de sortare ns cei pe care i vom aborda n acest site
vor fi : Bubble sort ,Insert Sort, Merge Sort i Selection Sort
,fiecare cu avantajele i dezavantajele sale.
Ce e SORTAREA ?
Sortarea este o operaie fundamental de informatic
(multe programe o folosesc ca pas intermediar) i ca urmare, a
fost dezvoltat un numr mare de algoritmi de sortare. Care
algoritm este cel mai bun pentru o apcaie dat depinde de
numrul de obiecte care trebuie sortate, de gradul n care aceste
obiecte sunt deja sortate ntr-un anumit fel i de tipul de mediu
16

ATESTAT INFORMATIC

electronic care urmeaz s fie folosit: memoria principal, discuri


sau benzi magnetice.

Metodele de sortare se clasific n metode directe i metode


avansate.
Metodele directe se bazeaz pe algoritmi de dificultate
redus, uor de gsit i de neles. Metodele directe pe care le
vom lua n considerare sunt sortarea prin selecie
( SelectionSort ), sortarea prin inserie ( InsertSort ) i sortarea cu
bule ( BubbleSort ).
Metodele avansate se bazeaz pe algoritmi puin mai
compcai, dar care nu necesit cunotiinte avansate de
algoritmic. Cteva din cele mai cunoscute sunt sortarea rapid
(QuickSort), sortarea prin interclasare (MergeSort) i sortarea cu
micorarea incrementului( Shell Sort ).
De ce le folosim?
Sortarea reprezint una dintre cei mai utizate metode de
programare. Are utizri de la domenii precum matematic
( statistic matematic ), pn la mbi ( reazarea unor dicionare ).
De aceea se impune s gsim cei mai convenabi algoritmi i s
prezentm avantajele i dezavantajele acestora.Ne rezumm
ns la cei mai importani.

Fiecare algoritm prezentat va fi caracterizat prin :


Cazul Mediu - situatia in care probabilitatea duratei executiei
algoritmului se apropie de media timpului de executie al algoritmului
respectiv

17

ATESTAT INFORMATIC
Cazul Mediu - situatia in care probabilitatea duratei executiei
algoritmului se apropie de media timpului de executie al algoritmului
respectiv
Cazul defavorabil - situatia in care timpul de executie al algoritmului
este cel mai ridicat
Memorie folosita memoria necesara sortarii vectorului
Stabilitate stabileste daca algoritmul prezentat nu are nevoie de o
implementare speciala pentru vectorii ce au valori egale
Sortare descrescatoare liniile de cod ce trebuie modificate in
implementarea algoritmului pentru a sorta vectorul descrescator
Sortare crescatoare liniile de cod ce trebuie modificare in
implementare algoritmului pentru a sorta vectorul crescator

3.2 Metoda bulelor


1. Cazul Mediu=O(N2)
2. Cazul defavorabil=O(N2)
3. Memorie folosita=O(1)
4. Stabilitate=DA
5. Sortare descresctoare=a[i] < a[i+1]
6. Sortare cresctoare=a[i] > a[i+1]

1.Descriere
Sortarea prin metoda bulelor se considera drept una din cele mai putin efective metode de
sortare dar cu un algoritm mai putin complicat.
Prin metoda de sortare se parcurge vectorul i se compar fiecare element cu succesorul su.
Deci se parcurge vectorul att timp ct mai exist o pereche (a[i],a[i+1]) cu a[i] > a[i+1] sau a[i]<
a[i+1] i dac nu sunt n ordine cele dou elemente, acestea se interschimb ntre ele.

18

ATESTAT INFORMATIC
La prima parcurgere elementul de valoare maxim se deplaseaz ctre ultima poziie. La a
doua parcurgere, elementul imediat urmtor ca valoare dup elementul maxim se deplaseaz
ctre penultima poziie. Vectorul se parcurge de mai multe ori, pn cnd la o parcurgere
complet nu se mai execut nici o interschimbare ntre elemente, nici o deplasare.

2. Paii care trebuiesc urmai n cazul sortrii prin metoda bulelor:

Se citesc elementele vectorului (nesortat)

Se creaz bucla repetitiv de parcurgere a vectorului (do...while)


o

Se iniializeaz variabila boolean utilizat pentru controlul parcurgerii vectorului

Se creaz bucla repetitiv (for) pentru a realiza compararea elementelor


succesive ale vectorului

Se compar elementele succesive (a[i] i a[i+1])dac a[i]>a[i+1] atunci:

Se interschimb valorile a[i] i a[i+1]

Se modific valoarea variabilei booleene

Se afieaz elementele vectorului (sortat)

#include <iostream>
using namespace std;
int main()
{
int a[20],n,i,inv,aux;
cout<<"Introduceti dimensiunea vectorului: n=";cin>>n;
cout<<"Introduceti elementele vectorului:"<<endl;
for(i=1;i<=n;i++)
{
cout<<"a["<<i<<"]=";
19

ATESTAT INFORMATIC

cin>>a[i];
}
do
{
inv=0;
for(i=1;i<n;i++)
if(a[i]>a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
inv=1;
}
}
while(inv==1);
cout<<"Dupa sortarea bubble sort, vectorul este: ";
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
3.2 Merge Sort
1.Cazul Mediu=O(N logN)
2.Cazul defavorabil=O(N logN)
3.Memorie folosita=O(N)
4.Stabilitate=DA
5.Sortare descresctoare=b[i] >= a[j]
6.Sortare cresctoare=b[i] <= a[j]

1.Descriere
n informatic, Merge Sort , denumit i algoritm de sortare prin interclasare este un
algoritm de sortare cu complexitatea O(nlogn), inventat de John von Neumann n 1945. Este un
exemplu algoritm de tip divide et impera.

20

ATESTAT INFORMATIC
Merge Sort are la baz interclasarea a doi vectori: fiind dai doi vectori ordonai, se
obine un al treilea vector ordonat care va conine elementele din cei doi vectori.

Sortarea prin interclasare utilizeaz metoda Divide et Impera:


Se mparte vectorul n secvene din ce n ce mai mici., astfel nct fiecare secvena s
fie ordonat la un moment dat i interclasat cu o alt secvena din vector corespunztoare.
Practic interclasarea va ncepe cnd se ajunge la o secven format din dou
elemente.
Aceasta odat ordonat se va interclasa cu o alt corespunztoare.Cele dou
secvene vor alctui n subir ordonat din vector mai mare care la rndul lui se va interclasa cu
subirul corespunztor .a.m.d.

2. Paii care trebuiesc urmai n cazul sortrii prin metoda bulelor:


Se citesc elementele vectorului (nesortat)
Dac lista este de lungime 0 sau 1, atunci este deja sortat.
Altfel:
mparte lista nesortat n dou subliste aproximativ egale
Sorteaz fiecare sublist recursiv prin reaplicarea algoritmului Merge
Sort.
Se interclaseaz cele dou liste i se obine lista iniial sortat.
Se afieaz elementele vectorului (sortat)

21

ATESTAT INFORMATIC
#include <iostream>
using namespace std;
int a[50];
void merge(int,int,int);
void merge_sort(int st,int dr)
{
int mid;
if(st<dr)
{
mid = st + (dr-st)/2;
merge_sort(st,mid);
merge_sort(mid+1,dr);
merge(st,mid,dr);
}
}
void merge(int st,int mid,int dr)
{
int h,i,j,b[50],k;
h=st;
i=st;
j=mid+1;
while((h<=mid)&&(j<=dr))
{
if(a[h]<=a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>mid)
{
for(k=j;k<=dr;k++)
{
b[i]=a[k];
i++;

}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=st;k<=dr;k++)
a[k]=b[k];
}
int main()
{
int num,i;
cout<<"Introduceti numarul
de elemente:";cin>>num;
cout<<endl;
cout<<"Introduceti
elementele
vectorului:"<<endl;
for(i=1;i<=num;i++)
{
cout<<"a["<<i<<"]=";
cin>>a[i] ;
}
merge_sort(1,num);
cout<<endl;
cout<<"Dupa Merge Sort ,
vectorul sortat va fi:"<<endl;
for(i=1;i<=num;i++)
cout<<a[i]<<" ";
return 0;
}

22

ATESTAT INFORMATIC

3.3 Selection Sort


1.Cazul Mediu=O(N2)
2.Cazul defavorabil=O(N2)
3.Memorie folosita=O(1)
4.Stabilitate=DA
5.Sortare descresctoare=min < a[j]
6.Sortare cresctoare=min > a[j]

1.Descriere
Sortarea prin selecia minimului (sau maximului) este metoda de ordonare prin
selectarea unui element i plasarea lui pe poziia sa final direct n tabloul A.Nu este un algoritm
indicat pentru vectorii mari, n majoritatea cazurilor oferind rezultate mai slabe dect Insertion
Sort i Bubble Sort.
De exemplu, n caz de ordonare cresctoare, pornind de la primul element se caut
valoarea minim din tablou. Aceasta se aeaz pe prima poziie printr-o interschimbare ntre
>elementul de pe prima poziie i elementul minim de pe poziia k. Apoi, se reia algoritmul,
pornind de la a doua poziie i se caut minimul ntre elementele a2, ..., an. Acesta se
interschimb cu al doilea dac este cazul. Procedeul se continu pn la ultimul element.
Este asemntoare cu Bubble Sort anterioar:la prima parcurgere valoarea minimal se
deplaseaz ctre prima poziie,la a doua parcurgere urmtorul element ca valoare va ocupa a
doua poziie, etc.

2. Paii care trebuiesc urmai n cazul sortrii prin metoda bulelor:


Se citesc elementele vectorului (nesortat)
Se creaz bucla repetitiv de parcurgere a vectorului (de la primul pn la
penultimul element: (for i=1;i< n;i++) Se reine ntr-o variabil(min) valoarea aflat n
vector pe poziia i
Se reine poziia i ntr-o alt variabil (k) n vederea interschimbarii valorii
vectorului de pe aceast poziie cu o eventual valoare mai mic gsit pe alt pozi ie
Se realizeaz o a dou parcurgere a vectorului ncepnd cu pozi ia i+1
pn la ultima poziie: (for j=i+1;j< n;j++)
Se compar valoarea stocat n variabila min cu elementele a[j]dac se gsete o valoare mai mic atunci:
Variabila min va primi valoarea gsit n a[j]
Se reine poziia valorii mai mici gsite (j) n variabila k
Se interschimb valorile a[i] i a[k]
Se afieaz elementele vectorului (sortat)
23

ATESTAT INFORMATIC

#include <iostream>
using namespace std;
int main()
{
int v[20],n,i,j,k,min,temp;
cout<<"Introduceti dimensiunea vectorului: n=";cin>>n;
cout<<"Introduceti elementele vectorului:"<<endl;
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i];
}
for(i=1;i<n;i++)
{
min=v[i];
k=i;
for(j=i+1;j<=n;j++)
if(v[j]<min)
{
min=v[j];
k=j;
}
temp=v[i];
v[i]=v[k];
v[k]=temp;
}
cout<<"Dupa sortarea prin selectie directa, vectorul este: ";
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}

24

ATESTAT INFORMATIC

3.4 Insertion Sort


1. Cazul Mediu=O(N2)
2. Cazul defavorabil=O(N2)
3. Memorie folosita=O(1)
4. Stabilitate=DA
5. Sortare descresctoare=: j > 1 && a[j - 1] < a[j]
6. Sortare cresctoare=: j > 1 && a[j - 1] > a[j]

1.Descriere
Spre deosebire de ali algoritmi de sortare, sortarea prin inserie este folosit
destul de des pentru sortarea tablourilor cu numr mic de elemente. De
exemplu, poate fi folosit pentru a mbunti rutina de sortare rapid
Sortarea prin inserie, este un algoritm eficient pentru sortarea unui numr mic
de obiecte. Sortarea prin inserie funcioneaz n acelai fel n care muli
oameni sorteaz un pachet de cri de joc. Se ncepe cu pachetul aezat pe
mas cu faa n jos i cu mna stng goal. Apoi, lum cte o carte de pe
mas i o inserm n poziia corect n mna stng. Pentru a gsi poziia
corect pentru o carte dat, o comparm cu fiecare dintre crile aflate deja n
mna stng, de la dreapta la stnga (sau de la stnga la dreapta), aa cum
este ilustrat n figura de mai jos.

Sortarea prin inserie seamn oarecum cu sortarea prin selecie. Tabloul este
mprit imaginar n dou pri,o parte sortat i o parte nesortat. La nceput,
25

ATESTAT INFORMATIC

partea sortat conine primul element al tabloului i partea nesortat conine


restul tabloului.La fiecare pas, algoritmul ia primul element din partea
nesortata i l insereaz n locul potrivit al prii sortate. Cnd partea nesortat
nu mai are nici un element, algoritmul se oprete.

2. Paii care trebuiesc urmai n cazul sortrii prin metoda


insertiei:
Se citete primul element
De la al doilea pn la ultimul element se execut:
o Se citete un nou element
o Ct timp valoarea este mai mic dect cea din fa i nam ajuns la primul element se execut:
Se interschimb elementul cu cel precedent
Se deplseaza cu o poziie spre stnga
Se reia de la pasul al doilea pn se termin de citit vectorul
Se afieaz elementele vectorului (sortat)
#include <iostream>
using namespace std;
int main()
{
int v[100],n,i,j,aux;
cout<<"Dati numarul de elemente ale tabloului n= ";
cin>>n;
cout<<"v[1]= ";cin>>v[1];
for(i=2;i<=n;i++)
{
cout<<"v["<<i<<"]= ";
cin>>v[i];
j=i;
while(v[j]<v[j-1] && j>1)
{
aux=v[j];
v[j]=v[j-1];
v[j-1]=aux;
j--;
}
}

26

ATESTAT INFORMATIC
cout<<"Vectorul sortat este: ";
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}

4. Utilizare

Domenii de utilizare
Lucrarea prezentat are un scop informative ,
ns i educative. Poate fi folosit cu uurin de
ctre persoanele care i doresc s nvee principiul
fiecrei dintre cele 4 metode de sortare , precum i
implementarea acesteia n C++.Totodat ,este un
bun ajutor pentru elevii de liceu a cror informaii
din site le sunt materie obligatorie i esenial.Iar
prezena imaginior ,explicaiilor i video-urilor fac
posibil crearea unei preri din punct de vedere
vizual.

27

ATESTAT INFORMATIC

5.Resurse de hard i soft


necesare
Resurse minime:

Hardware
Procesor(CPU) : 900 MHz+Memorie(RAM) : 64MbSpaiu liber: 190Mb
Monitor: VGA 16-bit color
Software
Sistem de operare: Windows 98/2000/XP
Internet Browser: Google Chrome ,iExplorer
Resurse recomandate

HardwareProcesor(CPU) : 1200 MHz+Memorie(RAM) : 256Mb


Spaiu liber: 380Mb
Monitor: VGA (1028 x 768)
Software
Sistem de operare: Windows XP
Internet Browser: Google Chrome ,iExplorer

28

ATESTAT INFORMATIC

Pentru o rulare normal a site-ului este necesara


instalarea in sistem a programului Java ,Adobe Flash
Player.

5.1 Programe utilizate

Adobe Dreamweaver 8
PhotoScape
Notepad ++
YoutubeDownloader

6.Biografie
http://www.worldit.info/
29

ATESTAT INFORMATIC

http://www.wikipedia.ro/

30

S-ar putea să vă placă și