算法基础

  1. 时间复杂度

    适用于大多数场景

    一个 for 循环 O(n)

    两个 for 循环 O(n²)

    三个 for 循环 O(n³)

    每次减少一半 O(log n)

  2. 空间复杂度

    适用于大多数场景

    创建常数项变量 O(1)

    创建一个list O(n)

  3. 递归

    1、定义

    • 在函数内部,可以调用其他函数。
    • 如果一个函数在内部调用自身本身,这个函数就是递归函数。

    2、递归特性

    • 必须有一个明确的结束条件
    • 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    • 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的
    • 每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。
    • 由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
  4. 查找

    线性查找(linear_search)

    二分查找(折半查找)(binary_search)

  5. 排序
    1. low b 三人组
      1. 冒泡排序(bubble_sort)
      2. 插入排序(insert_sort)
      3. 选择排序(select_sort)
    2. 🐂b 三人组
      1. 堆排序(heap_sort)
      2. 归并排序(merge_sort)
      3. 快速排序(quick_sort)
    3. 希尔排序
    4. 桶排序
  6. 数据结构
    1. 列表
    2. 队列
    3. 链表
      1. 单链表
      2. 双链表
    4. 哈希表
      1. 二叉树
      2. AVL树
    5. 动态规划
    6. 设计模式

results matching ""

    No results matching ""