前言
今儿是中秋,第二天开始学习排序算法,脸皮是得厚点,虽然自己还是有点水,但是还是需要继续努力ing~
1、定义
双层循环找最小(大)
在内存空间不变的情况下,依次找到最小(或最大)置到排序的最前方;
用时间换空间
特点
无论什么数据进去都是 O(n²) 的时间复杂度
数据规模越小越好
不占用额外的内存空间
2、步骤
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
3、JavaScript实现
functionselectionSort(arr){varlen = arr.length;varminIndex, temp;for(vari =0; i < len -1; i++) { minIndex = i;for(varj = i +1; j < len; j++) {if(arr[j] < arr[minIndex]) {// 寻找最小的数minIndex = j;// 将最小数的索引保存} } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; }returnarr;}
网友评论