选择排序-10-2

/// <summary>
/// 选择排序(移动次数比冒泡排序少,相对快)
/// 依次选择最小的数字放到最左边,移动少
/// </summary>
/// <param name="arr"></param>
public static void SelectionSort(this int[] arr)
{
    int min, temp;
    for (int outer = 0; outer < arr.Length - 1; outer++)
    {
        min = outer;
        for (int inner = outer + 1; inner < arr.Length; inner++)
        {
            if (arr[inner] < arr[min])
            {
                min = inner;
            }
        }
        temp = arr[outer];
        arr[outer] = arr[min];
        arr[min] = temp;
        arr.Show();
    }
}

/// <summary>
/// 选择排序(移动次数比冒泡排序少,相对快)
/// 依次选择最小的数字放到最左边
/// </summary>
/// <param name="arr"></param>
public static void SelectionSort_2(this int[] arr)
{
    int minIndex, temp;
    for (int outer = 0; outer < arr.Length - 1; outer++)
    {
        minIndex = outer;
        for (int inner = outer + 1; inner < arr.Length ; inner++)
        {
            if (arr[minIndex] > arr[inner])
            {
                minIndex = inner;
            }
        }
        if(outer != minIndex)
        {
            temp= arr[outer];
            arr[outer] = arr[minIndex];
            arr[minIndex] = temp;
            arr.Show();
        }

    }
}

 

posted @ 2023-01-06 11:28  芯蕊霸霸  阅读(20)  评论(0)    收藏  举报