前端面试 - 算法

2018-03-19  本文已影响0人  前端girl吖

https://www.cnblogs.com/tine/p/5938844.html
时间复杂度:一个算法执行所消耗的时间
空间复杂度:运行完一个程序所需内存的大小

function arrSort(arr) {
 var len = arr.length
 var minIndex,temp;
 for(var i = 0;i<len-1;i++){ //遍历次数
     minIndex = i; //每次循坏的第一个数为最小的
     for(var j = i+1;j<len;j++){ //遍历个数
        if(arr[j] < arr[minIndex]) {
         minIndex = j;找到每次循环到的最小值
         }
     }
       temp = arr[i]
       arr[i] = arr[minIndex];//将找到的最小值放在每次循环的最开始的地方
       arr[minIndex] = temp
   }
   return arr
}
----------------------------------------
var temp;
for(var i = 0;i<arr.length-1;i++){
   for(var j = i+1;j<arr.length-1;j++){
         if(arr[i]>arr[j]) {
             temp = arr[j];
             arr[j] = arr[i];
             arr[i] = temp 
         }
     }
}
function BubbleSort(arr){
let len = arr.length  
for(var i = 0;i<len-1;i++){
    for(var j =0;j<len-1-i;j++){
       if(arr[j]>arr[j+1])
          var temp = arr[j]
          arr[j] = arr[j+1]
          arr[j+1] = temp
    }
  }
}
return arr
// 递归方法:
function binararySearch(data,item,start,end){
var start = start || 0;
var end = end || data.length-1
var middle = Math.floor((start+end)/2)
if(item == data[middle]){
  return middle
}else if(item <  data[middle]) {
    return binararySearch(data,item,start,middle-1)
}else{
  return binararySearch(data,item,middle+1,end)
    }
 return false;
}

// 非递归方法
function binarySearch(data, item){
      var h = data.length - 1,
          l = 0;
         while(l <= h){
          var m = Math.floor((h + l) / 2);
          if(data[m] == item){
              return m;
          }
          if(item > data[m]){
             l = m + 1;
         }else{
             h = m - 1;
         }
     }
     return false;
 }
```
上一篇下一篇

猜你喜欢

热点阅读