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);