因为无法直接限制T是int或float,因此直接要求T实现IComparable。
注意:无法使用比较运算符(>,<,>=,<=),只能使用CompareTo进行比较。
- a.CompareTo(b)<0 等价于 a<b
- a.CompareTo(b)=0 等价于 a=b
- a.CompareTo(b)>0 等价于 a>b
public T[] InsertionSort<T>(T[] array) where T : IComparable
{
T temp;
for (int i = 1; i < array.Length; i++)
{
for (int j = i; j > 0; j--)
{
if (array[j].CompareTo(array[j - 1]) < 0)
{
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
return array;
}
网友评论