| 
                         其实算法方面在前端的实际项目中涉及得并不多,但还是需要精通一些基础性的算法,一些公司还是会有这方面的需求和考核,建议大家还是需要稍微准备下,这属于加分题。 
1. 五大算法
    - 贪心算法: 局部最优解法
 
    - 分治算法: 分成多个小模块,与原问题性质相同
 
    - 动态规划: 每个状态都是过去历史的一个总结
 
    - 回溯法: 发现原先选择不优时,退回重新选择
 
    - 分支限界法
 
 
2. 基础排序算法
- function bubleSort(arr) { 
 -         var len = arr.length; 
 -         for (let outer = len ; outer >= 2; outer--) { 
 -             for(let inner = 0; inner <=outer - 1; inner++) { 
 -                 if(arr[inner] > arr[inner + 1]) { 
 -                     [arr[inner],arr[inner+1]] = [arr[inner+1],arr[inner]] 
 -                 } 
 -             } 
 -         } 
 -         return arr; 
 -     } 
 
  
    - 选择排序: 遍历自身以后的元素,最小的元素跟自己调换位置
 
 
- function selectSort(arr) { 
 -     var len = arr.length; 
 -     for(let i = 0 ;i < len - 1; i++) { 
 -         for(let j = i ; j<len; j++) { 
 -             if(arr[j] < arr[i]) { 
 -                 [arr[i],arr[j]] = [arr[j],arr[i]]; 
 -             } 
 -         } 
 -     } 
 -     return arr 
 - } 
 
  
- function insertSort(arr) { 
 -     for(let i = 1; i < arr.length; i++) {  //外循环从1开始,默认arr[0]是有序段 
 -         for(let j = i; j > 0; j--) {  //j = i,将arr[j]依次插入有序段中 
 -             if(arr[j] < arr[j-1]) { 
 -                 [arr[j],arr[j-1]] = [arr[j-1],arr[j]]; 
 -             } else { 
 -                 break; 
 -             } 
 -         } 
 -     } 
 -     return arr; 
 - } 
 
  
3. 高级排序算法
 |