活动地址:CSDN21天学习挑战赛
*学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
CSDN—21天学习挑战赛—【经典算法】
学习专栏地址
学习计划
1,学习目标
经典算法的基础学习,以及数据结构入门级学习
**
学习日记
**
1,学习知识点
3,学习的收获
- 数组分成有序区和无序区,初始时整个数组都是无序区,然后每次从无序区选一个最小的元素直接放到有序区的最后,直到整个数组变有序区。
- O(n²) 的时间复杂度
图示
步骤说明
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
var arr = [9,0,8,1,7,2,6,3,5,4];
for (i=0;i<arr.length-1;i++){
var minIndex=i;
for(j=i+1;j<arr.length;j++){
// 对象解构
if(arr[minIndex]>arr[j])
minIndex = j;
}
[ arr[i], arr[minIndex] ]=[ arr[minIndex], arr[i] ];
}
步骤实例:
9,0,8,1,7,2,6,3,5,4
0,9,8,1,7,2,6,3,5,4
0,1,9,8,7,2,6,3,5,4
0,1,2,9,8,7,6,3,5,4
0,1,2,3,9,8,7,6,5,4
0,1,2,3,4,9,8,7,6,5
0,1,2,3,4,5,9,8,7,6
0,1,2,3,4,5,6,9,8,7
0,1,2,3,4,5,6,7,9,8
0,1,2,3,4,5,6,7,8,9