公用测试部分
1 | function createTestData() { |
冒泡排序
可以先找大的,也可以先找小的
- 含有两层循环,外层循环决定冒泡排序的结束位置索引,内层循环决定当前这一项冒泡排序的开始位置索引
- 每次内层循环,仅比较当前项和下一项的大小,如果当前项较大,则将两项位置互换。
- 保证每次内层循环结束后,内层循环的数列的末尾值是该数列的最大值
1 | function sort(data = []) { |
选择排序
可以先找大的,也可以先找小的
- 含有两层循环,外层循环决定选择排序当前比较数列的开始索引,同时假定当前开始索引中存储的值最小,内层循环决定选择排序仍然需要比较的数列范围
- 当需要比较的数列范围内有比当前假定的最小值小的值时,将两个值的位置互换
- 这种算法保证每次内层循环后都找到当前内层循环队列中的最小值,并且处于当前数列的头部
- 这是一种循环找极值的排序算法
1 | function sort(data=[]) { |
插入排序
可以先找大的,也可以先找小的
- 从第二项开始遍历,从当前项往前检查之前的项是否比当前项大,如果大则两项位置互换,然后重复此过程,直到检查完所有之前的项或者碰到小于当前项的项,即在之前的项中找到适合当前项的位置,并将项插入到这个合适的位置上
- 由于每一次项插入后的数列都是有序的,保证了当前项之前的项一定是有序的
1 | function sort(data = []) { |