选择排序法C#实现

来源:互联网 发布:gson map to json 编辑:程序博客网 时间:2024/06/07 11:06

理解:选择排序每次都从数组的无序起始位置选择第一个元素与后面的元素相比较,选出最小的元素放在这个位置上,然后再选择下一个元素与其后面的元素相比较再选出最小元素放在此位置上,每次选择比较都会产生一次交换和有序的最小元素,原理图如下:
这里写图片描述

实现代码如下:

static void Main(string[] args)        {            int[] arr = new int[10] { 5, 78, 96, 52, 569, 22, 36, 48, 99, 75 };            Console.WriteLine("Before sort:");            Show(arr);            Console.WriteLine("After sort:");            SelectionSort(arr);            Show(arr);        }        static void Show(int[] arr)        {            foreach (var item in arr)                Console.Write(item + "\t");            Console.WriteLine();        }        static void SelectionSort(int[] arr)        {            int min = 0, temp = 0;            for (int i = 0; i < arr.Length-1; i++)            {                min = i;                //每次从假定最小值的右边开始找                for (int j = i + 1; j < arr.Length; j++)                {                    //用min替换i,便于后面的交换                    if (arr[j] < arr[min])                    {                        //在剩下无序的数中找出最小值的索引                        min = j;                    }                }                //每内循环一次就找到一个最小值                temp = arr[i];                arr[i] = arr[min];                arr[min] = temp;            }        }
0 0