1.手写二分查找
function binarySearch(arr,flag){
let h=arr.length-1;
let l=0;
while(l<=h){
let m=Math.floor((h+l)/2);
if(arr[m]==flag){
return m}
if(arr[m]<flag) {
l=m+1;
}else{
h=m-1;
}
}
return flase
}
2.手写冒泡排序
function bubbleSort(arr){
for(let i=arr.length-1;i>=0;i--){
for(j=0;j<i;j++){
if(arr[j]>arr[j+1]){
let tmp=arr[j+1];
arr[j+1]=arr[j]
arr[j]=tmp
}
}
}
return arr
}
3.手写选择排序
function selectionSort(arr){
let len=arr.length;
for(var i=0;i<len-1;i++){
var min=i;
for(var j=min+1;j<len;j++){
if(arr[min]>arr[j]){
min=j
}
}
tmp=arr[i];
arr[i]=arr[min]
arr[min]=tmp;
}
return arr
}
4.手写插入排序
function insertSort(arr){
for(var i=0;i<arr.length;i++){
var temp=arr[i];
var j=i;
while(arr[j-1]>temp&&j>0){
arr[j]=arr[j-1]
j--
}
arr[j]=temp;
}
}
5.手写希尔排序
function shellSort(arr){
var len=arr.length;
var gap=Math.floor(len/2);
while(gap>=1){
for(var i=gap;i<len;i++){
var temp=arr[i];
j=i;
while(arr[j-gap]>temp&&j>gap-1){
arr[j]=arr[j-gap];
j-=gap;
}
arr[j]=temp
}
gap=Math.floor(gap/2)
}
}
6.手写快速排序
function quickSort(arr){
if(arr.length<=1){
return arr
}
let middle=Math.floor(arr.length/2);
let flag=arr.splice(middle,1)[0]
let left=[];
let right=[];
for(let i=0;i<arr.length;i++){
if(arr[i]<flag){
left.push(arr[i]);
}else{
right.push(arr[i])
}
}
return quickSort(left).concat([flag],quickSort(right));
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-57152.html