排序
快速排序
1 | function quickSort(arr) { |
选择排序
1 | function selectionSort(arr) { |
归并排序
1 | function mergeSort(arr) { |
插入排序
1 | function insertionSort(arr) { |
希尔排序
插入排序的优化
希尔排序对增量序列的选择没有严格规定
一般选 d1 约为 n/2,d2 为 d1/2, d3 为 d2/2 ,…, di = 1
事例以3+1=4为第二基数(1是第一基数),3倍递增生成gap,即1、4、13…
1 | function shellSort(arr) { |
d1 约为 n/2,d2 为 d1/2, d3 为 d2/2 ,…, di = 1的Demo:
1 | function shellSort2(array) { |
冒泡排序
1 | // 循环比较好相邻的两个值,每次循环冒泡出来一个排好序的值,以此不断减小循环数量 |