美文网首页
常见简单算法

常见简单算法

作者: Small_Song | 来源:发表于2022-05-06 09:44 被阅读0次

Q1. 速度创建1-100的数组

ES5的写法

image

ES6的写法

image

Q2. 洗牌算法

这道题是我去富途面试CTO问我的一道题,我听到之后一脸懵比(后面的题目也做的不好),结果直接game over,面试之后查阅了下百度自己写了出来

image

Q3 随机生成指定长度的字符串

实现一个算法,随机生成指制定长度的字符窜。
比如给定 长度 8 输出 4ldkfg9j

function randomString(n) {  
   let str = 'abcdefghijklmnopqrstuvwxyz9876543210';
   let tmp = '',
         i = 0,
         l = str.length;
         for (i = 0; i < n; i++) {
             tmp += str.charAt(Math.floor(Math.random() * l));
         } 
        return tmp; 
  } 

Q4、阶乘 非递归实现

function factorialize(num) {
  var result = 1;
    if(num < 0) return -1;
    if(num == 0 || num == 1) return 1;
    while(num>1) {
      result *= num--;
    }
    return result;
}

递归实现

function factorialize(num) {
  var result = 1;
  if(num < 0) return -1;
  if(num == 0 || num == 1) return 1;
  if(num > 1) return num*factorialize(num-1);
}

Q5、二分查找 非递归实现

function binary_search(arr, key) {
  var low = 0,
      high = arr.length - 1;
  while(low <= high){
    var mid = parseInt((high + low) / 2);
    if(key == arr[mid]){
      return mid;
    }else if(key > arr[mid]){
      low = mid + 1;
    }else if(key < arr[mid]){
      high = mid -1;
    }
  }
  return -1;
}

递归实现

function binary_search2(arr, low, high, key) {
  if(low > high) return -1;
  var mid = parseInt((low + high)/2);
  if(key == arr[mid]) {
    return mid;
  } else if(key > arr[mid]) {
    return binary_search2(arr, mid+1, high, key);
  } else if(key < arr[mid]) {
    return binary_search2(arr, low, mid-1, key);
  }
}

相关文章

  • 常见简单算法

    1.数组 二分查找: 冒泡排序 插入排序 选择排序 快速排序 链表 链表反转 合并2个有序链表 树 前序遍历

  • 常见简单算法

    快速排序 快速排序算法其实很简单,采用分治策略。步骤如下: 选取一个基准元素(pivot) 比pivot小的放到p...

  • 常见简单算法

    Q1. 速度创建1-100的数组 ES5的写法 ES6的写法 Q2. 洗牌算法 这道题是我去富途面试CTO问我的一...

  • 高可用实践-限流算法

    限流算法 常见的限流算法有计数器算法、漏桶算法和令牌桶算法。 计数器法 计数器算法“简单粗暴”。该算法会维护一个c...

  • 【Guava】使用Guava的RateLimiter做限流

    一、常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法。 1.漏桶算法 漏桶算法的原理比较简单,请求进...

  • 简单总结几个常见算法

    朴素贝叶斯 优点:简单易懂缺点:假设特征之间相互独立,不能处理特征之间有关联的情况 LR(逻辑回归) 优点:线性模...

  • 用几张动图教你学会python简单排序算法的实现

    对于准备研究算法的同学,刚开始接触的算法通常是序列排序以及查找算法,那么今天我们来简单介绍一下几种常见的排序算法,...

  • 高并发下的限流算法

    对于限流常见有两种算法: 漏桶算法 令牌桶算法 漏桶算法 漏桶算法比较简单,就是将流量放入桶中,漏桶同时也按照一定...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • php的垃圾回收算法

    编程语言的垃圾收集算法有很多种,今天我们谈一谈常见的集中垃圾收集算法。 引用计数算法 引用计数算法很简单,它实际上...

网友评论

      本文标题:常见简单算法

      本文链接:https://www.haomeiwen.com/subject/aqgyjltx.html