Questão 26: insere
Voltar
Defina uma função void insere (int v[], int N, int x)
que insere um elemento (x
) num vetor ordenado. Assuma que as N
primeiras posições do vetor estão ordenadas e que por isso, após a inserção, o vetor terá as primeiras N+1
posições ordenadas.
Exemplo
> int v[5] = {1,2,4,5};
> insere(v, 4, 3);
> v
(int [5]) {1, 2, 3, 4, 5}
Resolução
void insere (int v[], int N, int x) {
int i, j, inserted = 0;
for(i = 0; i < N && !inserted; i++) {
if(x < v[i]) {
for(j = N; j > i; j--) {
v[j] = v[j - 1];
}
v[i] = x;
inserted = 1;
}
}
if(!inserted) v[N] = x;
}