简单选择排序

选择排序的初步思想:在排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作。

简单选择排序法就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1=
void SelectSort(SeList *L)
{
    int i,j,min;
    for(i=1;i<=L->length;i++)
      {
        min=i;     /*将当前下标定义为最小值下标*/
      for(j=i+1;j<=L->length;j++)    /**循环之后的数据/
      {
          if(L->r[min]>L->r[j])    /*如果有小于当前最小值的关键字,将此关键字的下标赋给min*/
             min=j;
     }
    if(i!=min)         /*i不等于min,说明找到最小值*/
     swap(L,i,min);/*交换l->r[i]和l->r[min]的值*/
      }
}

复杂度分析

交换移动数据的次数相当少
最好的时候,交换0次
最坏的时候,交换次数为n-1次

时间复杂度为O(n2)
在性能上优先于冒泡排序

js代码










执行结果如图


简单选择排序_第1张图片
简单选择排序执行结果

你可能感兴趣的:(简单选择排序)