2017-09-25 4 views
0
function insertionSort(ul){ 
    for(var i =0; i< ul.length; i++){ 
     for(var j = i-1; j<ul.length; j++){ 
      if(ul[j] > ul[j+1]){ 
      [ul[j],ul[j+1]] = [ul[j+1], ul[j]] 
      } 
     } 

    } 
    return ul 
} 

var ul = [5, 3, 1, 2, 4]; 
console.log(insertionSort(ul)); 

^Mon implantation est-elle considérée comme un type d'insertion, ou est-ce un tri des bulles?Ma mise en œuvre est-elle considérée comme un type d'insertion?

Répondre

0

Avec le tri par insertion, le processus de tri est effectué tandis que remplit le tableau. Ainsi, votre code n'est pas un tri d'insertion: il commence par un tableau déjà rempli.

Vous ne spécifiez pas le langage de programmation, mais le tout premier test de votre code semble vraiment étrange: if (ul[-1] > ul[0]) ... (testé la première fois que le moteur d'exécution entre dans les boucles imbriquées). Par conséquent, cela peut ne pas être une sorte de bulle, soit. Votre implémentation devrait être améliorée.