📅  最后修改于: 2023-12-03 15:25:55.788000             🧑  作者: Mango
在C#中,我们可以使用内置的排序函数从一个数组中创建有序的版本。在本文中,我们将学习如何使用这个函数,以及一些关于排序的基本知识。
C#中的Array
类提供了名为Sort
的静态方法,我们可以通过它来对数组进行排序。该方法的名称暗示着它对原始数组进行修改,即在函数调用之后,原数组将被排序的版本所替代。
下面是Sort
函数的示例用法:
int[] arr = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
Array.Sort(arr);
在此示例中,我们创建了一个整数数组arr
,并在之后应用了Sort
函数。 这将导致数组arr
中的元素被排序。 在此示例中,Sort
函数将生成按数字排序的数组。
可以使用Sort
函数对自定义类型的元素进行排序。我们只需要为数组中存储的类型实现IComparable
接口。
例如,假设我们有一个Person
类,它有一个属性Age
用于表示年龄:
public class Person : IComparable<Person>
{
public int Age { get; set; }
public int CompareTo(Person other)
{
return Age.CompareTo(other.Age);
}
}
在此示例中,Person
类实现IComparable<Person>
接口,并实现CompareTo
方法来定义排序。在实现中,我们比较了Age
属性。
要将Person
对象的数组排序,我们可以像下面一样使用Sort
函数:
Person[] people = {
new Person() { Age = 25 },
new Person() { Age = 15 },
new Person() { Age = 35 }
};
Array.Sort(people);
在此示例中,我们创建了一个Person
对象数组,然后通过应用Sort
函数使它们按年龄排序。
注意:当我们使用Sort
函数对自定义类型的对象排序时,我们必须确保该类型实现了IComparable
接口。
Sort
函数在内部使用一些不同的排序算法,以便根据需要调整性能和稳定性之间的平衡。
以下是.NET Framework 4.5中实现的排序算法列表:
在大多数情况下,Sort
函数将使用Introspective sort
,它在大多数情况下提供良好的性能。但是,当输入集合具有一些不寻常的特征时,Sort
函数将选择不同的算法以获得最佳性能。
在C#中,我们可以使用Sort
函数对数组进行排序。这个函数很灵活,甚至可以用于包含自定义类型的数组,只要该类型实现了IComparable
接口。 在排序中,Sort
函数会自动选择最适合当前数据的算法。