JavaScript的排序算法——选择排序

 

选择排序(Selection Sort)

选择排序是一种排序算法,是一个占用常用内存(In-place)的排序方法。时间复杂度为O(n2)。通常情况下,在处理大型数据的时候,性能要比相似的插入排序低。选择排序因其简单性而著称,并且在某些情况下性能要优于更复杂的算法,尤其是在辅助存储空间有限的情况下。

实现思路跟冒泡排序差不多, 可以说是冒泡排序的衍生版本;

选择排序的工作原理

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置

然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

以此类推,直到全部待排序的数据元素排完。

编码实现:

第一步:先定义一个selectionSort函数,传入需要排序的数组

function selectionSort(arr){
	
}

第二步:定义最小元素的索引和辅助交换变量的临时变量;

function selectionSort(arr){
	var len = arr.length;
	var minIndex;  //最小元素的索引
	var temp;  //用于交换变量的临时变量
	
	
}

 第三步:循环遍历数组,取到最小值

function selectionSort(arr){
	var len = arr.length;
	var minIndex;  //最小元素的索引
	var temp;  //用于交换变量的临时变量
	for(let i = 0;i<len;i++){
		minIndex = i;
		for(let j = i+1;j<len;j++){
			if(arr[j]<arr[minIndex]){
				minIndex = j;
			}
		}
		
	}
}

第四步: 交换最小值与当前元素的位置 ,最后,返回数组

function selectionSort(arr){
	var len = arr.length;
	var minIndex;  //最小元素的索引
	var temp;  //用于交换变量的临时变量
	for(let i = 0;i<len;i++){
		minIndex = i;
		for(let j = i+1;j<len;j++){
			if(arr[j]<arr[minIndex]){
				minIndex = j;
			}
		}
		// 交换arr[i] 与最小值的位置
		temp = arr[i];
		arr[i] = arr[minIndex];
		arr[minIndex] = temp;
	}
	return arr;
}

当需要排序时,调用该函数即可:

相关阅读

JavaScript的排序算法——冒泡排序
JavaScript的排序算法——选择排序
JavaScript的排序算法——插入排序
JavaScript的排序算法——归并排序
JavaScript的排序算法——快速排序

 

发布了49 篇原创文章 · 获赞 6 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章