0
How do I sort the struct using the short Insert I’m new to programming if you can help me please and explain , I’ll send the code I did :
#include <iostream>
using namespace std;
struct Familia {
int IdadePai;
int IdadeMae;
int IdadeFilho;
};
void insertion_sort( Familia lista [], int tam ){
int valor_pivo;
int aux ;
int j;
int posPivo ;
for (int i = 1; i < tam ; i++) {
valor_pivo = lista [i].IdadePai;
posPivo = i ;
j = i - 1;
while ((j >= 0) and (valor_pivo < lista [j].IdadePai)){
aux = lista [j].IdadePai;
lista [j] = lista[posPivo].IdadePai;
lista[posPivo].IdadePai = aux ;
aux = lista [j].IdadeMae;
lista [j] = lista[posPivo].IdadeMae;
lista[posPivo].IdadeMae = aux ;
aux = lista [j].IdadeMae;
lista [j].IdadeMae = lista[posPivo].IdadeMae;
lista[posPivo].IdadeMae = aux ;
j--;
}
aux = lista [j].IdadePai;
lista [j] = lista[posPivo].IdadePai;
lista[posPivo].IdadePai = aux ;
aux = lista [j].IdadeMae;
lista [j] = lista[posPivo].IdadeMae;
lista[posPivo].IdadeMae = aux ;
aux = lista [j].IdadeMae;
lista [j].IdadeMae = lista[posPivo].IdadeMae;
lista[posPivo].IdadeMae = aux ;
}
}
int main(){
Familia lista [5];
bool igual = false ;
for (int i = 0; i < 5 ; i++){
cin >> lista[i].IdadePai;
cin >> lista[i].IdadeMae;
cin >> lista[i].IdadeFilho;
}
insertion_sort( lista , 5);
for (int j = 0 ; j < 5; j++){
for (int k = j ; k < 5; k ++){
if (lista[j].IdadeFilho == lista[k].IdadeFilho ){
cout << lista[j].IdadePai << " " ;
cout << lista[j].IdadeMae << " " ;
igual = true ;
}else {
igual = false ;
}
}
}
if( igual == false ){
cout << -1 ;
}
return 0;
}