I would like to change the function to a recursive function, I'm wrong I tried it as well
1 se n > 1 então
2 Inserção-Rec (A, n−1)
3 x ← A[n]
4 i ← n−1
5 enquanto i > 0 e A[i] > x faça
6 A[i+1] ← A[i]
7 i ← i−1
8 A[i+1] ← x
aqui só esta o pseudo código do que tenho que fazer pois o meu esta bem errado.
#include <stdlib.h>
#include <string.h>
#include <string.h>
#define N 1000
/*Ordenar crescente por inserção*/
int ordenacao_por_insercao(int v[], int n);
int main(){
int v[N];
int i, n;
printf("Digite o tamanho do vetor :");
scanf("%d", &n);
for(i=0; i<n; i++){
printf("digite o valor do v[%i] : ",i);
scanf("%d", &v[i]);
}
for(i=0;i<n;i++){
printf("\nVetor V[%d] : %d",i,v[i]);
}
ordenacao_por_insercao(v,n);
for(i=0;i<n;i++){
printf("\n\nVetor ordenado V[%d] : %d",i,v[i]);
}
}
int ordenacao_por_insercao(int v[], int n){
int j, i, chave;
for(j = 0; j < n; j++){
chave = v[j];
i = j - 1;
while(i >= 0 && v[i] > chave){
v[i + 1] = v[i]; /*encontrar o ponto onde chave é
inserido no subvetor ordenado*/
i = i - 1;
}
v[i + 1] = chave; /*chave é inserido no subvetor
ordenado*/
}
return v;
}
Note put the code here for other people who have problem with this first part see and try to understand! Thank you.