2012-02-13 5 views
-8

Je fais le tri de 10 nombres aléatoires générés et je dois faire le tri pas à pas dans un gui. mais dans un tri d'insertion quand j'appuie sur le bouton pour trier il donne le problème de l'index hors de portée je connais son problème de bcoz de i_ins ++ mais je ne peux pas l'enlever aussi bcoz mon tri dans gui ne sera pas étape par étape ainsi aucune solution ou modification à cela qu'il fonctionnera étape par étape et ne donnera pas une erreur aussi.index hors plage dans le tri d'insertion dans C#

public void InsertionSort() 
    { 

     int j; 
     int c_value; 

     c_value = generate[i_ins]; 
     j = i_ins - 1; 

     while (j >= 0 && generate[j] > c_value) 
     { 
      generate[j + 1] = generate[j]; 
      show1(generate); 
      j--; 
     } 

     generate[j + 1] = c_value; 
     i_ins++; 

     show1(generate); 
    } 
+0

où est « i_ins » défini? – AlwaysAProgrammer

+2

Une ponctuation aiderait. La question est essentiellement illisible. Où rencontrez-vous l'erreur et quel est le message d'exception exact? –

+0

Quelle est la taille de generate par rapport à i_ins? Rappelez-vous que les tableaux C# comptent de 0 à la longueur-1 – Chriseyre2000

Répondre

5

Il existe d'autres problèmes dans votre code. Cependant, la IndexOutOfBound est causée par la ligne suivante:

c_value = generate[i_ins]; 

En supposant que i_ins est la taille de votre tableau, il devrait être

c_value = generate[i_ins - 1]; 
Questions connexes