Informatică, întrebare adresată de marianavoiculep5u48m, 8 ani în urmă

Se da un vector cu n componente. Afisati cele mai mari 3 componente.


ProMinecraft69: O solutie eficienta ar fi sa sortezi vectorul, apoi ultimele 3 elemente din vector vor fi raspunsurile cautate de tine.
Porecla0987: Sortarea nu-i deloc eficienta in acest caz
Porecla0987: E chiar ingrozitoare

Răspunsuri la întrebare

Răspuns de Porecla0987
0

O solutie eficienta.

#include <iostream>

using namespace std;

int main()

{

int n, v[100], x, y, z;

cin >> n;

cin >> x >> y >> z;

if (x > y)

{

 int aux = x;

 x = y;

 y = aux;

}

if (y > z)

{

 int aux = y;

 y = z;

 z = aux;

}

if (x > y)

{

 int aux = x;

 x = y;

 y = aux;

}

for (int i = 3; i < n; ++i)

{

 cin >> v[i];

 if (v[i] > z)

 {

  int aux = z;

  z = v[i];

  x = y;

  y = aux;

 }

 else if (v[i] > y)

 {

  x = y;

  y = v[i];

 }

 else if (v[i] > x)

  x = v[i];

}

cout << x << " " << y << " " << z << endl;

return 0;

}

Alte întrebări interesante