mandelacruz Posted April 10, 2020 Posted April 10, 2020 Olá ,queria saber se esse codigo que criei seria a mesma coisa do algoritmo de ordenação por inserção. Tentei me expressar bem nos comentarios para que entendam. Tentei criar esse algoritmo escrito de uma maneira diferente do que é apresentado nos livros e tal. Ele ta apresentando o resultado final tudo ok, mas fui ver a quantidade de trocas desse meu código com outro de um livro , vi que esse meu faz muito mais trocas dai me surgiu a duvida se realmente fiz ele certo. #include <stdio.h> #include <string.h> void inserction(char *p, int caracs); int main() { char s[10]; printf("Digite uma string:\n"); scanf("%10[^\n]", s); printf("--------------------------------------------------------------\n"); printf("String antes de ser ordenada por Inserction(InserctionSort)\n\t%s\n", s); inserction(s, strlen(s)); printf("String depois de ser ordenada por Inserction(InserctionSort)\n\t%s\n", s); return 0; } void inserction(char *p, int caracs) { for(int i=0; i<caracs-1; i++)// controlador da posição atual do vetor { for(int j=i+1; j<caracs; j++)// controlador da posição sucessora da atual posição { if(p[j] < p[i])// comparação da a posição atual com o seu sucessor. Caso V, declara uma //variável temporária e faz as trocas { char t; t = p[i]; p[i] = p[j]; p[j] = t; if(i >= 1 && p[i] < p[i-1])//começo da comparação com o antecessor. Caso V, faz as trocas { t = p[i-1]; p[i-1] = p[i]; p[i] = t; } } } } } Desde já obrigado!! O código de livro que me referi foi esse aqui: #include <stdio.h> #include <string.h> void insert(char *item, int count); int main() { char s[10]; printf("Digite uma string:\n"); scanf("%10[^\n]", s); printf("---------------------------------------------------\n"); printf("String antes de ser ordenado por inserção: %s\n", s); insert(s, strlen(s)); printf("\nString depois de ser ordenado por inserção: %s\n", s); return 0; } void insert(char *item, int count) { int a, b; char t; for(a=1; a<count; ++a) { t = item[a]; for(b=a-1; b>=0 && t<item[b]; b--) { item[b+1] = item[b]; } item[b+1] = t; } }
fredericopissarra Posted April 11, 2020 Posted April 11, 2020 Wikipedia é seu amigo: https://en.wikipedia.org/wiki/Insertion_sort Em pt-br não é tão bom: https://pt.wikipedia.org/wiki/Insertion_sort
mandelacruz Posted April 12, 2020 Author Posted April 12, 2020 Que vergonha alheia desse post que fiz, nao sei como eu escrevi esse codigo. Mds como sou burro... Não tem nada haver com o algoritmo de inserção.
Administrators Fernando Mercês Posted April 12, 2020 Administrators Posted April 12, 2020 Pára com isso, você é muito inteligente em dedicar tempo estudando programação em C. Admirável também postar seus avanços aqui. Isso não só é bom pra ti, mas ajuda e inspira outras pessoas, ou seja, é um sinal de no-ego muito forte. Parabéns e muito obrigado! ?
fredericopissarra Posted April 12, 2020 Posted April 12, 2020 @mandelacruz, lembro a você que "herrar é umano" e, assim como Fernando disse, a iniciativa de aprender é sempre louvável! Meu comentário deve-se apenas ao fato de que algumas informações são facilmente encontradas... [[]]ão Fred
Recommended Posts
Archived
This topic is now archived and is closed to further replies.