冒泡排序
function sort(s){for (let i = 0;i<s.length-1;i++){for (let j = 0;j<s.length-i-1;j++){if (s[j]>s[j+1]){[s[j],s[j+1]] = [s[j+1],s[j]]}}}return s}
第一个循环为了重置指针用,没有指针含义代表了冒泡次数,进行下一轮冒泡
选择排序
function sort(s){let min = s[0]let index = 0if (s.length === 1){return s}else {for (let i = 0;i<s.length;i++){if (min>=s[i]){min = s[i]index = i}}s.splice(index,1)}return [min].concat(sort(s))}
快速
function sort(s){const pivotIndex = Math.floor(s.length/2)let pivot = s.splice(pivotIndex, 1)[0];const left = []const right = []for (let i = 0; i < s.length; i++) {if (s[i] < pivot) {left.push(s[i]);} else {right.push(s[i]);}}if (s.length<=1){return s}else {return sort(left).concat([pivot],sort(right))}}
归并
function mergesort(numbers) {if (numbers.length === 1) {return numbers;}let left = arr.slice(0, Math.floor(numbers.length / 2));let right = arr.slice(Math.floor(numbers.length / 2));return merge(mergesort(left), mergesort)(right);}function merge(a, b) {if (a.length === 0) return b;if (b.length === 0) return a;if (a[0] > b[0]) {[b[0]].concat(merge(a, b.slice(1)));} else {[a[0]].concat(merge(a.slice(1), b));}}
