作为我的一项任务的一部分,我获得了一组11个文本文件,以演示各种搜索和排序功能。这些文件中的数据包括整数,浮点数和字符串。我使用了两种排序算法来对字符串和整数进行排序,并希望重新使用其中一种来对浮点数进行排序。是否可以调整我的代码以使用float数组作为整数数组的替代?
算法代码:
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]);
}
}
答案 0 :(得分:0)
您可以将其设为通用方法,以便按类型进行参数化。但是,并非所有类型都以统一的方式进行比较,因此您可以将自己局限于实施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]);
}
}