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;
    }
}