Ordonare

Se dă un vector cu n elemente numere naturale.

Cerinţa

Să se ordoneze crescător elementele vectorului.

Date de intrare

Programul citește de la tastatură numărul n, apoi n numere întregi, reprezentând elementele vectorului.

Date de ieşire

Programul va afișa pe ecran cele n elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.

Restricţii şi precizări

  • 1 ≤ n ≤ 1000
  • elementele vectorului vor fi mai mici decât 1.000.000.000

Exemplu

Intrare

6
8 2 9 4 5 7

Ieșire

2 4 5 7 8 9

SOLUTIE1

#include <iostream>
using namespace std;

int main(){
	int n, x[1005];
	cin  >> n;	
	for(int i = 0 ; i < n ; ++ i)
		cin >> x[i];
	bool sortat = false;
	while(! sortat)
	{
		sortat = true;
		for(int i = 0 ; i < n - 1 ; i++)
			if(x[i] > x[i+1])
			{
				int aux = x[i];
				x[i] = x[i+1];
				x[i+1] = aux;
				sortat = false;
			}
	}
	for(int i = 0 ; i < n ; ++ i)
		cout << x[i] << " ";
	return 0;
}

SOLUTIE2

Sortarea prin insertie
se cosidera ca sirul a[1], a[2], .., a[i-1] este sortat si se insereaza valoare a[i] in acesta

#include <fstream>
#include <iostream>
using namespace std;


int n;
int a[1001];


int main()
{
    cin >> n;
    for ( int i = 1; i <= n; ++i)
        cin >> a[i];

    for(int i = 2 ; i <= n ; i ++)
    {
        double x = a[i];
        int p = i;
        while(p > 1 && a[p - 1] > x)
            a[p] = a[p-1], p --;
        a[p] = x;
    }

    for ( int i = 1; i <= n; ++i)
        cout << a[i] << ' ';

    return 0;
}
%d bloggers like this: