public static T[] BubbleSort<T>(this T[] arr) where T : class
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length-1; j++)
{
if (arr[j - 1] > arr[j])
swap(arr[j - 1], arr[j]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何创建通用冒泡排序扩展方法?有没有办法处理这里的比较?错误1运算符'>'无法应用于'T'和'T'类型的操作数
Chr*_*Wue 10
你可以限制T为IComparable<T>这样:
public static void BubbleSort<T>(this T[] arr) where T : IComparable<T>
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length-1; j++)
{
if (arr[j].CompareTo(arr[j + 1]) > 0)
swap(arr[j], arr[j + 1]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
其优点是T也可以是类型的值int.此外,您的函数不需要在更改this数组时返回数组.
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |