在 BubbleSort 函数中,我使用了 sortOrder,然后通过 switch-case 进行检查。如果 sortOrder = SortOrder.Asc,则升序,如果 *.Desc - 降序。有没有更优雅的方法来检查 switch-case 变量?
public enum SortOrder
{
Asc,
Desc
}
public static class Sorting
{
public static void BubbleSort<T>(this T[] array, SortOrder sortOrder = SortOrder.ASC) where T : IComparable<T>
{
for (var i = 0; i < array.Length; i++)
{
for (var j = 1; j < array.Length - i; j++)
{
if (array[j - 1].CompareTo(array[j]) > 0)
Swap(ref array[j - 1], ref array[j]);
}
}
}
事实是我还想做一个快速排序,它将使用递归并不断比较 sortOrder - 不酷。它可以使用显式函数 - BubbleSortAsc,但是,就我而言,它看起来不是很好,并且代码会成倍增加(它不会解决 switch-case 中重复代码的问题)。
我怎样才能做得更好?谢谢你。
你可以作弊一点。
开关将被移除,比较将很快进行。