se da un vector cu n elemente intregi fara a folosi un vector auxiliar sa se mute la sfarsitul vectorului elementele sale nule pastrand ordinea celor lalte elemente
Răspunsuri la întrebare
Răspuns de
0
Ma gandesc la 2 variante.
Prima este sa folosesti functia swap:
Ce face swap mai exact?Interschimba 2 valori fara alta variabila auxiliara.
In loc de:
aux=b;
b=a;
a=aux;
vei avea swap(a,b)
Bineinteles, ca aplici functia swap pentru vectorul tau:
2)Parcurgi vectorul si cand gasesti un element egal cu 0, il numeri(cu o variabila nr si stergi valoarea, mutand toate elementele vectorului cu o pozitie la stanga.La final, parcurgi vectorul de la ultima pozitie pana la ultima pozitie+nr si adaugi "0".
Spre exemplu, daca ai vectorul:
7 2 0 5 0 4 3 1 0
1)parcugem vectorul, numaram "0" si le stergem
o sa avem
7 2 5 4 3 1
si nr=3.( nr de 0 eliminate)
2)Parcurgem vectorul de inca 3 ori si adaugam la finalul vectorului 3 zerouri(sau cate am eliminat anterior)
Personal recomand a doua varianta.Cea cu swap s-ar putea sa ridice probleme intr-un vector.
Prima este sa folosesti functia swap:
Ce face swap mai exact?Interschimba 2 valori fara alta variabila auxiliara.
In loc de:
aux=b;
b=a;
a=aux;
vei avea swap(a,b)
Bineinteles, ca aplici functia swap pentru vectorul tau:
2)Parcurgi vectorul si cand gasesti un element egal cu 0, il numeri(cu o variabila nr si stergi valoarea, mutand toate elementele vectorului cu o pozitie la stanga.La final, parcurgi vectorul de la ultima pozitie pana la ultima pozitie+nr si adaugi "0".
Spre exemplu, daca ai vectorul:
7 2 0 5 0 4 3 1 0
1)parcugem vectorul, numaram "0" si le stergem
o sa avem
7 2 5 4 3 1
si nr=3.( nr de 0 eliminate)
2)Parcurgem vectorul de inca 3 ori si adaugam la finalul vectorului 3 zerouri(sau cate am eliminat anterior)
Personal recomand a doua varianta.Cea cu swap s-ar putea sa ridice probleme intr-un vector.
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă