考虑对数组A中的n个数的排序:开始时先找出A中的最小元素并放在另一个数组B的第一个位置上。然后找出A冲次最小元素并放在B的第二个位置上,对A中余下来的元素继续这个过程。这个算法称为选择排序,请写出其伪代码,并以(看不清)形式显出其最佳和最坏情况下时间代价。
static void Main(string[] args)
{
int[] A = { 31, 41, 59, 26, 41, 58 };
int[] B = new int[A.Length];
for (int J = 1; J < A.Length; J++)
{
int key = A[J];
int I = J - 1;
while (I >= 0 && key < A[I])
{
B[I + 1] = A[I + 1] = A[I];
B[I] = A[I] = key;
I = I - 1;
}
}
for (int m = 0; m < B.Length; m++)
{
Console.WriteLine(B[m].ToString());
}
Console.ReadLine();
}