function insertionSort(arr){
var len = arr.length;
var preIndex, current;for(vari =1; i < len; i++){
preIndex = i -1;
current = arr[i];while(preIndex >=0&& arr[preIndex]> current){
arr[preIndex +1]= arr[preIndex];
preIndex--;}
arr[preIndex +1]= current;}return arr;}
快速排序
privatestaticvoidQuickSort(Integer[] a,int l,int r){if(l >= r){return;//l和r代表左右两边的的萝卜下标}int key = a[l];//挖出第一个萝卜备用 int left = l, right = r;//工人A和B分别站在最左边和最右边位置开始寻找需要交换位置的萝卜while(left < right){while(right > left && a[right]>= key){//B往左走寻找比挖出来的第一个萝卜轻,且位置在A右边的萝卜
right--;}
a[left]= a[right];while(left < right && a[left]<= key){//A要往右寻找比一个萝卜重,且位置在B左边的萝卜
left++;}
a[right]= a[left];}
a[left]= key;QuickSort(a, l, left);QuickSort(a, left +1, r);}
归并排序
function mergeSort(arr){
varlen = arr.length;if(len <2){
returnarr;}
varmiddle = Math.floor(len /2),
left = arr.slice(0, middle),
right = arr.slice(middle);returnmerge(mergeSort(left),mergeSort(right));}
function merge(left, right){
varresult =[];while(left.length>0&& right.length>0){if(left[0]<= right[0]){
result.push(left.shift());}else{
result.push(right.shift());}}while(left.length)
result.push(left.shift());while(right.length)
result.push(right.shift());
returnresult;}
选择排序for(int i=0;i<size;i++){ int k=i; for(int j=i+1;j<size;j++){ if(a[k]<a[j]) k=j; } int temp=a[i]; a[i]=a[k]; a[k]=temp; }}插入排序function insertionSort(arr) { var len = arr.length; var preIndex, current; for(vari = 1; i &.