mandelacruz Posted April 10, 2020 at 11:08 PM Share Posted April 10, 2020 at 11:08 PM 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; } } Link to comment Share on other sites More sharing options...
fredericopissarra Posted April 11, 2020 at 12:48 PM Share Posted April 11, 2020 at 12:48 PM 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 Link to comment Share on other sites More sharing options...
mandelacruz Posted April 12, 2020 at 12:38 AM Author Share Posted April 12, 2020 at 12:38 AM 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. Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted April 12, 2020 at 12:26 PM Administrators Share Posted April 12, 2020 at 12:26 PM 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! ? Link to comment Share on other sites More sharing options...
fredericopissarra Posted April 12, 2020 at 02:14 PM Share Posted April 12, 2020 at 02:14 PM @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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.