【发布时间】:2014-06-02 11:40:47
【问题描述】:
我正在尝试使用冒泡排序对<T> 类型的列表进行排序。不幸的是,我在比较未知类型的对象时遇到了问题。
到目前为止我已经尝试过:
public static void BubbleSort<T>(this List<T> array)
{
for (int i = (array.Count - 1); i >= 0; i--)
{
for (int j = 1; j <= i; j++)
{
if (array[j - 1] > array[j]) // issue here
{
var temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
}
【问题讨论】:
-
考虑使用
IComparer<T>参数...或使用Comparer<T>.Default。鉴于List<T>不是数组,我强烈 考虑重命名您的参数。 (我认为这仅用于教育目的?) -
@Sriram 我假设他正在学习冒泡排序的工作原理。
-
@Carra 我很欣赏学习,但除非有充分的理由,否则我将使用
List.Sort而不是我们自己的版本。 -
@Sriram Sakthivel 我打赌你会回到这里,如果你需要一个方法来说明你 List
是否已排序:) -
我不需要
BubbleSort实现。我想我没有遗漏什么吗?我是吗?