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. 完全二叉树

查找算法

  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)
坚持技术分享,您的支持将鼓励我继续创作!

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