SORTAREA PRIN METODA BULELOR

Slides:



Advertisements
Prezentări similare
Cap.1. Elemente de teoria transmisiei informatiei
Advertisements

Duhul Sfânt și darurile Lui
Proiect la Tehnici de Redactare a Lucrarilor
Adunarea numerelor naturale de la 0 la 1000
ELECTRONICĂ II Notiţe de curs Cursul nr. 8
Relatii intre radacini si coeficienti (relatiile lui Viète)
Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim
Aplicaţii Calculaţi media aritmetică şi suma pătratelor numerelor 10, 12, 57, 23, 99 folosind caseta statistică a calculatorului. Calculaţi valoarea expresiei.
Adunarea numerelor naturale
Determinarea divizorilor unui numar
-Algebra Relațională II-
Recapitulare – rezolvați următorul rebus:
Internet - notiuni generale
DORINŢA DE LIBERTATE LIBERTÁTE s.f. 1. Posibilitatea de acţiune după propria voinţă sau dorinţă; posibilitatea de acţiune conştientă.
CONSTRUCTUVISMUL.
Tehnici de machetare ecran (tpz; atribMarci;)
Structura sistemelor de calcul (03-5)
ZIUA PORŢILOR DESCHISE,
Profesor IOAN AIACOBOAIE
Curs 4 Analiza structurii unei lucrări (de ce mi-a plăcut această lucrare?) Analiza conţinutului unei abordări în QA.
Constantin Alexandru Sebastian
PASTELUL.
Procesarea și optimizarea interogărilor
O PROPUNERE DE DEFINIŢII DE TERMENI DIN TEHNOLOGIA INFORMAŢIEI
Facultatea de Informatică Universitatea “Al. I
.NET Framework Limbajul C#.
Fig Informaţia analogică şi digitală
Conținut Matrice.
MEDIUL LIMBAJULUI DE PROGRAMARE STUDIAT
Materiale electrotehnice noi
PROIECTUL Profesor: Babusca Tatiana
1 CIRCUITE NUMERICE III.2.3 Numărătoare sincrone
Modelarea in VHDL a automatelor secventiale
NUMERALUL.
prof. univ. dr. ing. Claudiu Vasile KIFOR ş.l. dr. ing. Lucian LOBONŢ
Generalități despre fișiere
AGENŢIA NAŢIONALĂ PENTRU OCUPAREA FORŢEI DE MUNCĂ
Programare Avansata cu FPGA - 2
PROIECTUL EDUCAŢIONAL
2. Unitatea aritmetică și logică
Aquarelles de Marcel REYNAERT.
Algoritmi.
PARTEA I UTILITARE DE SISTEM
STRATEGII DE STIMULARE A GÂNDIRII CRITICE LA PREȘCOLARI
Aplicații for Nivel - Inițiere.
S t r u c t u r i l i n i a r e  .
MAXIME.
Luceafărul de Mihai Eminescu
Parteneriatul Broker – Asigurator
ALGORITMI PENTRU SORTAREA UNUI VECTOR
Informatica in economie
Geometria şi algebra sunt două surori?
TDA şir Structuri de date şi algoritmi -laborator-
Verificarea unei relatii între date. Funcţia IF Functia COUNTIF
METODA PROIECTULUI.
MOBILITĂŢI INDIVIDUALE DE FORMARE CONTINUĂ
Cursul 7: Memorarea şi managementul informațiilor economice
Curs 10-Operatii cu pointeri -Pointeri la tablouri
Haideţi spre patria cerească, Haideţi creştini spre Canaan,
Subiectul:Ozoboții în acțiune
Teoremele lui Kirchhoff
ESANTIONAREA SI CUANTIZAREA IMAGINILOR 1. Introducere
Curs 9-Pointeri la variabile -Pointeri la siruri de caractere
ADJECTIVUL.
Structura sistemelor de calcul (02-3)
VĂ ROG SĂ PĂSTRAŢI LINIŞTEA !.
Metodologia elaborării proiectelor de intervenţie
Transcriere de prezentare:

SORTAREA PRIN METODA BULELOR OBIECTIVE: să cunoască semnificaţia noţiunii de sortare; să descrie algoritmul în limbaj natural; să cunoască ce variabile sunt necesare; să implementeze algoritmul în limbaj C++; să rezolve probleme ce necesită sortări.

SEMNIFICAŢIA NOŢIUNII DE SORTARE A sorta un tablou înseamnă a rearanja elementele tabloului astfel încât între acestea să existe o relaţie de ordine (crescătoare sau descrescătoare)

DESCRIEREA METODEI Prin această metodă se parcurge tabloul şi se compară fiecare element cu succesorul său. Dacă nu sunt în ordine, cele două elemente se interschimbă între ele. Tabloul se parcurge de mai multe ori, până când, la o parcurgere completă, nu se mai execută nicio interschimbare între elemente (adică tabloul este sortat).

ENUNŢUL PROBLEMEI: Se dă un tablou a cu n elemente întregi. Să se realizeze sortarea crescătoare a elementelor tabloului.

VARIABILE NECESARE a – tabloul unidimensional; n – lungimea tabloului; aux – pentru interschimbul elementelor (de acelaşi tip cu elementele tabloului); i – contor (utilizat pentru parcurgerea tabloului); f – variabilă logică (se utilizează pentru a şti dacă s-a făcut cel puţin o operaţie de interschimbare la parcurgerea tabloului).

ALGORITMUL ÎN LIMBAJ NATURAL Se iniţializează variabila f cu 1 (adică se presupune că şirul este sortat); Se începe parcurgerea tabloului plecând de la i=0 (primul element al tabloului); Se compară elementul a[i] cu elementul următor a[i+1]: Dacă a[i] > a[i+1] atunci se realizează interschimbul celor două elemente şi variabila f primeşte valoarea 0; Se trece la următoarea poziţie în tablou prin incrementarea lui i; Se continua parcurgerea tabloului făcând comparaţiile necesare până când i ajunge la valoarea n-2; Se reia algoritmul începând cu pasul 1 cât timp f=0, Când f rămâne 1 atunci înseamnă că tabloul este sortat crescător (la ultima parcurgere nu s-a realizat nici un interchimb de elemente).

Fie tabloul unidimensional a ce are următorul conţinut: Poziţia i = 1 2 3 4 3 2 1 n=4

> DA 4 3 2 1 f=1 Prima parcurgere a tabloului i=0 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 Prima parcurgere a tabloului 3 4 2 1

> DA 3 4 2 1 f=0 Prima parcurgere a tabloului i=1 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 Prima parcurgere a tabloului 3 2 4 1

> DA 3 2 4 1 f=0 Prima parcurgere a tabloului i=2 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 Prima parcurgere a tabloului 3 2 1 4

f=0 ? DA 3 2 1 4 f=0 Prima parcurgere a tabloului SE REIA PARCURGEREA TABLOULUI

> DA 3 2 1 4 f=1 A doua parcurgere a tabloului i=0 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 A doua parcurgere a tabloului 2 3 1 4

> DA 2 3 1 4 f=0 A doua parcurgere a tabloului i=1 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 A doua parcurgere a tabloului 2 1 3 4

f=0 i=2 A doua parcurgere a tabloului 2 1 3 4 > NU

f=0 ? DA 2 1 3 4 f=0 A doua parcurgere a tabloului SE REIA PARCURGEREA TABLOULUI

> DA 2 1 3 4 f=1 A treia parcurgere a tabloului i=0 SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

f=0 A treia parcurgere a tabloului 1 2 3 4

f=0 i=1 A treia parcurgere a tabloului 1 2 3 4 > NU

f=0 i=2 A treia parcurgere a tabloului 1 2 3 4 > NU

f=0 ? DA 1 2 3 4 f=0 A treia parcurgere a tabloului SE REIA PARCURGEREA TABLOULUI

f=1 i=0 A patra parcurgere a tabloului 1 2 3 4 > NU

f=1 i=1 A patra parcurgere a tabloului 1 2 3 4 > NU

f=1 i=2 A patra parcurgere a tabloului 1 2 3 4 > NU

f=0 ? NU 1 2 3 4 f=1 A patra parcurgere a tabloului TABLOUL ESTE SORTAT

Tabloul sortat crescător Tabloul iniţial: 4 3 2 1 Tabloul sortat crescător 1 2 3 4

ALGORITMUL ÎN LIMBAJ C++ #include<iostream.h> int a[20],aux,f; unsigned int n,i; void main (void) { cout<<"n="; cin>>n; for (i=0;i<n;i++) cout<<"a["<<i+1<<"]="; cin>>a[i]; } do { f=1; for(i=0;i<n-1;i++) if (a[i]>a[i+1]) aux=a[i]; a[i]=a[i+1]; a[i+1]=aux; f=0; } while(!f); cout<<"sirul sortat este"<<endl; for (i=0;i<n;i++) cout<<a[i]<<" ";

APLICAŢII Dându-se un tablou cu n elemente numere naturale, şi o variabilă p naturală (p<n), să se sorteze crescător tabloul până la elementul p şi de la elementul p descrescător.

APLICAŢII Dându-se un tablou cu n elemente numere naturale, să se localizeze elementul maxim şi toate elementele dinaintea lui să se sorteze crescător, iar cele de după el,descrescător.

APLICAŢII Se introduce anul naşterii pentru un număr de n persoane, n introdus şi el de la tastatură. Să se afişeze vârstele persoanelor în ordine crescătoare.

TEMĂ Pentru un experiment privind inteligenţa unor maimuţe se aşează pe masă un număr de maxim 20 de cuburi. Maimuţele sunt învăţate să aleagă cuburile astfel încât să formeze din toate un turn stabil. Pentru fiecare maimuţă, înainte de testare, este nevoie să se rearanjeze cuburile în ordinea iniţială. Să se alcătuiască algoritmul după care o maimuţă ar trebui să formeze turnul, astfel încât să se poată reface aşezarea iniţială a cuburilor.