简单选择排序

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

简单选择排序法就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1=<i<=n) 个记录交换之。

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代码

<!doctype html>
<html>
<head>
<title></title>
<script type="text/javascript">
    
    function SelectSort(arr){
       for (var i = 1; i <=arr.length; i++) {
           var min=i;
           for (var j= i+1; j<=arr.length; j++) {
                if (arr[min]>arr[j]) {
                    min=j;
                }
            }
             if (i!=min) {
               var temp;
           temp=arr[i];
           arr[i]=arr[min];
           arr[min]=temp;
          }
        }
      } 
      var array=[1,3,4,2,5,6];
       SelectSort(array);
      document.write(array);
</script>
</head>
<body
</body>
</html>

执行结果如图


简单选择排序执行结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,215评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,271评论 0 2
  • 基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者...
    NEXTFIND阅读 9,285评论 1 0
  • 【师北宸一块听听写作课】作业:以前妨碍你写作的借口是什么,以及自己是怎么解决写作的障碍的? 师老师所说的妨碍写作的...
    5197云清阅读 363评论 4 2