一、O(n^2)的排序算法
选择排序 (从小到大)
5 9 3 8 1 2 6 7
有很多可比较类型
public class test<T> where T : IComparable
{
public static T[] order(T[] arr, int n)
{
for (int i = 0; i < n; i++)
{
int minIndex = i;
for (int j = i + 1; j < n; j++)//循环,直到找出最小的
{
if (arr[j].CompareTo(arr[minIndex]) < 0)
{
minIndex = j;
}
}
//swap(arr[i], arr[minIndex]);//交换当前位置,与剩余位置中最小的那个
T left = arr[i];
T right = arr[minIndex];
arr[i] = right;
arr[minIndex] = left;
}
return arr;
}
public string print()
{
string str = "";
int[] arr = { 5, 9, 3, 8, 1, 2, 6, 7, 4 };
arr = test<int>.order(arr, 9);
for (int i = 0; i < arr.Length; i++)
{
str += arr[i] + " ";
}
return str;
}
结果输出:1 2 3 4 5 6 7 8 9