【C# 排序】简单选择排序

概览

 

 定义

选择排序:每一趟在待排序元素中选取关键字最小(或最大)的元素, 和首个待排序元素的做交换。

 

适用范围

适用性:既可以用于顺序表,也可用开链表

时间和空间复杂度

时间复杂度:O(N)

 

 

空间复杂度:O(1)

稳定性

简单选择排序是不稳定的

算法执行步骤

第一趟:从左往右扫描找出最小元素,和第一元素做交换。

 

 第二趟、第一元素就不用扫描了,再剩下的部分找出最小元素27和38交换位置

 

 第三趟:同上

 

 

 

。。。。。。。。。。。。。。。。。。。。。

 

 C#代码

 

  public static void StraightSelectSort(int[] aa)
        {
            int min ,j,it;
            
            for (int spilt = 0 ; spilt < aa.Length - 1; ++spilt)
            {
                //选出最小的
                for (  min=j= spilt; j < aa.Length-1; ++j )
                {
                    if ( j+1 < aa.Length - 1 && aa[j+1] < aa[min])
                    {
                        min = j+1;

                    }
                }
                //选择出做小值,和第一个值做交换
                it = aa[spilt];
                aa[spilt] = aa[min];

                aa[min] = it;
            }
        }

 

posted @ 2022-06-12 01:31  小林野夫  阅读(71)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/