C#排序算法
//插入排序
public class insertSort{
static void Main2()
{
int[] number = { 30, 25, 65, 17, 99, 12, 33, 9, 200, 2, 60 };
int tmp;
for (int i = 1; i <= number.Length - 1; i++)
{
if (number[i] < number[i - 1])
{
tmp = number[i];
int j = i - 1;
for (; j >= 0&&number[j] > tmp ; j--)
{
number[j + 1] = number[j];
}
number[j+1] = tmp;
}
}
for (int i = 0; i < number.Length; i++)
Console.WriteLine(number[i]);
Console.Read();
}
}
//折半排序
public class halfSort
{
static void Main()
{
int[] number = { 30, 25, 65, 17, 99, 12, 9, 33, 200, 2, 60 };
int tmp;
for (int i = 1; i <= number.Length - 1; i++)
{
tmp = number[i];
int low = 0;
int high = i - 1;
while (low <= high)
{
int pos = (low + high) / 2;
if (tmp < number[pos])
high = pos - 1;
else
low = pos + 1;
}
for (int j = i - 1; j > high; j--)
number[j + 1] = number[j];
number[high + 1] = tmp;
}
for (int i = 0; i < number.Length; i++)
Console.WriteLine(number[i]);
Console.Read();
}
}