冒泡排序和选择排序
Contents
冒泡排序
//冒泡排序
int[] a = new int[]{3,2,5,1,6,4,2,1,5,6,7,8};
for (int i = 0; i < a.Length; i++)
{
for (int j = 0; j < a.Length - i - 1; j++)
{
//如果下一位更大 则交换
if (a[j] > a[j+1]) {
int b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
}
}
foreach (var item in a)
{
Console.WriteLine(item);
}
Console.ReadKey();选择排序
//选择排序
int[] a = new int[] { 3, 2, 5, 1, 6, 4, 2, 1, 5, 6, 7, 8 };
for (int j = 0; j < a.Length; j++)
{
//最大值索引
int maxIndex = 0;
for (int i = 0; i < a.Length - j; i++)
{
if (a[maxIndex] < a[i])
{
maxIndex = i;
}
}
//将最大值和最后一个值交换
if (maxIndex != a.Length - j - 1)
{
int temp = a[a.Length - j - 1];
a[a.Length - j - 1] = a[maxIndex];
a[maxIndex] = temp;
}
}