Witam mam problem z sortowaniem 5 liczb. Dla np: 12, 4, 5 ,3, 45, wypisuje mi złą kolejnosc
Wzorowałem się na stronie http://users.uj.edu.pl/~ufkapano/algorytmy/lekcja11/sort3.html
Czy dobrze zapisałem kod?
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int L[5];
for (int i = 0; i < 5; ++i) {
cin >> L[i];
}
// KROK 1.
if (L[0] > L[1]) {
swap(L[0], L[1]);
if (L[3] > L[4]) {
swap(L[3], L[4]);
}
// KROK 2.
if (L[1] > L[4]) {
swap(L[1], L[4]);
swap(L[0], L[3]);
}
// Mamy [a, b, e, c, d]
// KROK 3. Wstawiamy e ,które siedzi na L[2]
if (L[2] < L[1]) {
if (L[2] < L[0]) {
swap(L[2], L[1]);
swap(L[1], L[0]); // Mamy [e, a, b, c, d]
}
else
swap(L[1], L[2]); // Mamy [a, e, b, c, d]
}
else if (L[2] > L[4]) {
swap(L[2], L[4]); // Mamy [a, b, d, c, e], c jest za d!
}
// KROK 4. Umieszczamy c, które jest na razie na L[3]
if (L[3] < L[1]) {
if (L[3] < L[0]) {
swap(L[3], L[2]);
swap(L[2], L[1]);
swap(L[1], L[0]);
}
else
swap(L[3], L[2]);
swap(L[2], L[1]);
}
else if (L[3] < L[2]) {
swap(L[2], L[3]);
}
}
for (int i = 0; i < 5; ++i) {
cout << L[i] << " ";
}
return 0;
}