0%

算法学习笔记

数据结构(线性结构/树形结构/图结构)

  1. 数组 array
  2. 链表(动态数据结构)
  3. 散列表 hashtable
  4. 栈 stack(后进先出)(系统栈-子函数)
  5. 队列 queue(先进先出)(循环队列,对普通队列进行优化)
  6. 堆 heap
  7. 树 tree
  8. 二叉树 binary tree(动态数据结构)
  9. 二分搜索树 binary search tree(每个节点的值大于其左子树所有节点的值,小于其右子树说有节点的值)(存储的元素必须有可比较性)
  10. 集合 set (每个元素只能存在一次) (去重)(使用二分搜索树实现)
  11. 映射 map (key value)
  12. 优先队列 Priority Queue (使用堆可以高效实现)
  13. 二叉堆 binary heap (使用树实现的堆,是一棵完全二叉树)(最大堆父节点的值大于子节点的值)(最小堆)(用数组可以实现)
  14. 满二叉树
  15. 完全二叉树
  16. 图

查找算法

  1. 简单查找
  2. 二分查找

排序算法

  1. 选择排序(selection sort)
  2. 插入排序(insertion sort)
  3. 希尔排序(shell sort)
  4. 快速排序(Quick sort) 平均时间复杂度 O(nlogn),最坏时间复杂度 O(n*n)
  5. 归并排序(merge sort) 平均时间复杂度 O(nlogn),采用二分法,空间复杂度 O(n)
  6. 堆排序(heap sort)
  7. 冒泡排序(bubble sort)
  8. 计数排序(counting sort)
坚持技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道