网站首页 » 记录 » 前端算法

前端算法

April 15, 2019 记录
/*冒泡排序*/
function bubbleSort(arr){
     for(var i=1;i<arr.length;i++){
         for(var j=0;j<arr.length-i;j++){
             var temp;
             if(arr[j]>arr[j+1]){
                 temp=arr[j];
                 arr[j]=arr[j+1];
                 arr[j+1]=temp;
             }
         }
     }
     return arr;
}


/*快速排序*/
var quickSort = function(arr) { 
  if (arr.length <= 1) { return arr; } 
  var pivotIndex = Math.floor(arr.length / 2); 
  var pivot = arr.splice(pivotIndex, 1)[0]; 
  var left = []; 
  var right = []; 
  for (var i = 0; i < arr.length; i++){ 
    if (arr[i] < pivot) { 
      left.push(arr[i]); 
    } else { 
      right.push(arr[i]); 
    } 
  } 
  return quickSort(left).concat([pivot], quickSort(right)); 
}; 


/*插入排序*/
function insertSort(arr){  
    for(var i=1;i<arr.length;i++){  
        var j=i;  
        while(j>0&&arr[j]<arr[j-1]){  
            var t=arr[j];  
            arr[j]=arr[j-1];  
           arr[j-1]=t;  
           j--;  
        }  
    }  
    return arr;  
}  


/*二分法排序*/
function binarySearch(data, dest, start, end){  
    var end = end || data.length - 1,  
        start = start || 0,  
        m = Math.floor((start + end) / 2);  
    if(data[m] == dest){  
        return m;  
    }  
    if(dest < data[m]){  
        return binarySearch(data, dest, 0, m-1);  
	 }else{  
	        return binarySearch(data, dest, m+1, end);  
	    }  
	    
	    return false;  
	}  
var arr = [-34, 1, 3, 4, 5, 8, 34, 45, 65, 87];  
binarySearch(arr,4);