1
resposta

Dica ou Melhoria para algoritmo.

Oi, inspirado pela aula montei esses algoritmos para ordenar uma lista em ordem crescente, gostaria de saber se consigo otimizar esses códigos principalmente o /Guloso Duplo/ ou se alguém tiver outra dica, ficaria feliz, obrigado.

console.log("---------------------------------------------------------------");

//var livro = [25,15,30,50,45,20];
var livro = [2,3,4,5,6,1];
var tamanho = livro.length-1;
console.log(livro);

/*Força bruta*/
// for(j=0;j<tamanho;j++)
// {
//     for(i=0;i<tamanho;i++)
//     {
//         if(livro[i] > livro[i+1]){
//             x = livro[i];
//             livro[i] = livro[i+1];
//             livro[i+1] = x;
//         };
//     };
// };

/*Guloso*/
// for(j=0;j<tamanho;j++){
//     var posicao = j;
//     for(i=j;i<livro.length;i++){
//         //console.log(j,i, livro[i], livro[posicao], posicao);
//         if(livro[i] < livro[posicao])
//         {
//             posicao = i;
//         };
//     };
//     x = livro[j];
//     livro[j] = livro[posicao];
//     livro[posicao] = x;
// };

/*Guloso Duplo*/
for(j=0;j<tamanho;j++){
    var menor = j;
    var maior = tamanho-j;
    var k = tamanho-j;
    for(i=j;i<livro.length;i++){
        if(livro[i] < livro[menor])
        {
            menor = i;
        };
        if(livro[k] > livro[maior])
        {
            maior = k;
        };
        k--;
    };
    x = livro[j];
    livro[j] = livro[menor];
    livro[menor] = x;

    if(j+1 == tamanho-j){
        break;
    }
    x = livro[tamanho-j];
    livro[tamanho-j] = livro[maior];
    livro[maior] = x;
};
console.log(livro);
1 resposta

Boa tarde Luan tudo bem ?

Na documentação do javascript temos uma função chamada SORT MDN Web Docs onde ela faz a ordenação de um array pra você. Segue um exemplo abaixo.

livro.sort((a, b) => a > b ? 1 : -1)

console.log("minha lista ordenada => ", livro);