2017-04-22 2 views
-1

Dans le cadre de l'une de mes missions, j'ai reçu un ensemble de 11 fichiers texte pour illustrer diverses fonctions de recherche et de tri. Les données de ces fichiers incluent des entiers, des flottants et des chaînes. J'ai utilisé deux algorithmes de tri pour trier les chaînes et les entiers et j'aimerais en réutiliser un pour trier les flottants. Serait-il possible d'adapter mon code pour utiliser les tableaux flottants comme une alternative aux tableaux entiers?Utiliser différents types de tableaux dans l'algorithme de tri

code

pour l'algorithme:

public static void InsertionSort(int[] intArray){ 
    int temp, j; 
    for (int i = 1; i< intArray.Length; i++){ 
     temp = intArray[i]; 
     j = i - 1; 

     while(j >=0 && intArray[j] > temp){ 
      intArray[j+1] = intArray[j] 
      j--; 
     } 
    intArray[j+1] = temp; 
    }  
    for (int i = 0; i < intArray.Length; i++){ 
     Console.WriteLine(intArray[i]); 
    } 
} 
+1

font un [méthode générique] (https://msdn.microsoft.com/en-us /library/twcad0zb.aspx)? – UnholySheep

Répondre

0

Vous pouvez le faire une méthode générique afin de paramétrer par type. Cependant, tous les types sont comparables d'une manière uniforme, vous pouvez donc vous limiter à ceux qui mettent en œuvre IComparable<T>:

public static void InsertionSort<T>(T[] array) 
     where T : IComparable<T> 
    { 
     T temp; 
     int j; 

     for (int i = 1; i < array.Length; i++) 
     { 
      temp = array[i]; 
      j = i - 1; 

      while (j >= 0 && array[j].CompareTo(temp) > 0) 
      { 
       array[j + 1] = array[j]; 
       j--; 
      } 
      array[j + 1] = temp; 
     } 

     for (int i = 0; i < array.Length; i++) 
     { 
      Console.WriteLine(array[i]); 
     } 
    } 
+0

Fonctionne parfaitement. Merci! – jcrossley