zoukankan      html  css  js  c++  java
  • 排序算法-简单选择排序(javascript)

    思想:每一趟从待排序记录中选择最小的,按顺序放在已排好序的序列最后,直到排完为止。

    function selectSort(arr){
    	let k=0;
    	let t=0; 
    	for(let i=0;i<arr.length;i++){    //选择出最小的
    		k=i;
    		for(let j=i+1;j<arr.length;j++){
    			if(arr[j]<arr[k]){
    				k=j;        //k指向此趟排序最小的
    			}
    		}
    		if(k!=i){       //交换
    			t=arr[i];
    			arr[i]=arr[k];
    			arr[k]=t;
    		}
    	}
    
    	return arr;
    }
    

    时间复杂度

    简单选择排序过程中,所需进行记录移动次数较少。最好情况:正序。不移动。最坏情况:逆序。移动3(n-1)次。

    无论记录初始序列如何,所需进行的关键词的比较次数相同。都为n^2/2。因此时间复杂度为O(n^2)

    空间复杂度

    同冒泡排序一样,只有两个记录交换时需要一个辅助空间。所以空间复杂度为O(1)

    特点

    1、以交换记录来实现最小记录到位,是不稳定的。 

    2、可用于链式结构。

    3、移动次数较少,当每记录占用空间较多时,此方法比直接插入排序快。

  • 相关阅读:
    git命令
    svg学习系列02-简单的svg图形和线条
    svg学习系列01-svg简介
    jQuery分页插件
    svg简介
    css3选择器
    sublime使用
    HTML5新特性
    html新的语义化标签和表单控件
    DOM详解
  • 原文地址:https://www.cnblogs.com/PeriHe/p/7975796.html
Copyright © 2011-2022 走看看