Na aula a professora contruiu com a gente o seguinte cod:
E no final ela deu a a ideia de alterar no ''for '' atual = 0 por atual = 1, assim tirando a necessidde de colocar analise>0 no 'while'. Por fim fui executar o cod e deu ERRO.
Na aula a professora contruiu com a gente o seguinte cod:
E no final ela deu a a ideia de alterar no ''for '' atual = 0 por atual = 1, assim tirando a necessidde de colocar analise>0 no 'while'. Por fim fui executar o cod e deu ERRO.
Olá, Mário!
Pelo que entendi, você tentou seguir a sugestão da professora de alterar o valor inicial da variável atual
de 0 para 1 no laço for
do algoritmo de ordenação insertionSort
e encontrou um erro ao executar o código. A ideia por trás dessa alteração é que, se começarmos com atual
igual a 1, podemos assumir que o elemento na posição 0 já está em sua posição correta, já que não há elementos antes dele para comparar. Isso também permite que possamos remover a condição analise > 0
do laço while
, já que analise
nunca será 0.
No entanto, para que essa alteração funcione corretamente, é importante garantir que todas as outras partes do código estejam sincronizadas com essa nova lógica. Vou descrever o que você precisa verificar:
troca
está sendo importada corretamente e que não há erros de digitação ou de caminho do arquivo.while
está correta. Se você removeu a condição analise > 0
, a nova condição deve garantir que analise
não tente acessar uma posição negativa do array.lista[analise - 1]
, precisa ter certeza de que analise
nunca será menor que 1, para evitar erros de índice fora dos limites do array.Se você ainda estiver enfrentando problemas, por favor, compartilhe a mensagem de erro específica que está recebendo. Isso pode nos ajudar a diagnosticar melhor o problema e a encontrar uma solução.
Lembre-se de que, ao fazer alterações no código, é sempre uma boa prática testar cada mudança incrementalmente para garantir que cada parte está funcionando como esperado antes de prosseguir para a próxima.
Espero ter ajudado e bons estudos!