选择排序

原理:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,每趟待排序的元素数量减一,直到全部待排序的数据元素排完。例如数量为n的数组,每次遍历i到n,选出最大(最小)的元素放在i位置,i+1,直到i等于n-1。


时间复杂度:n!,n的阶乘


实现步骤:第1趟从n个记录选择关键码最小(或最大)的记录并与第1个记录交换位置;第2趟从第2个记录开始的n-1个记录中选择关键码最小(或最大)的记录并与第2个记录交换位置。一般地,第i趟从第i个记录开始的n-i-1个记录中选择关键码最小(或最大)的记录并与第i个记录交换位置,所以,第n-1趟比较最后两个记录选择关键码最小(或最大)的记录并与第n-1个记录交换位置。


c#脚本实现

        public void Sort(int [] list)
        {
            for(int i=0; i<list.Length-1; i++)
            {
                 min=i;
                 for(int j=i+1; j<list.Length; j++)
                 {
                     if(list[j]<list[min])
                     min=j;
                 }
                 int t=list[min];
                 list[min]=list[i];
                 list[i]=t;
            }
        }    
一直想把之前工作、学习时记录的文档整理到博客上,一方面温故而知新,一方面和大家一起学习 -程序小白
原文地址:https://www.cnblogs.com/wang-jin-fu/p/8321171.html