《啊哈算法》读书笔记

  1. 桶排序,需要的数组要比总的元素多1.
  2. 冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。
  3. 冒泡排序的原理是:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位。如果有n个数进行排序,只需将n-1个数归位。
  4. for(i=1; i<=n-1; i++){for(j=1; j<=n-i; j++)}
  5. 冒泡排序的时间复杂度是O(N平方)。
  6. 快速排序每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。
  7. 快速排序的最差时间复杂度是O(N平方),它的平均时间复杂度为O(NlogN)。
  8. 队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这称为"出队",而在队列的尾部(tail)进行插入操作,这称为"入队"。当队列中没有元素时(即head==tail),称为空队列。
  9. 遍历就是指把图的每一个顶点都访问一次。
  10. 深度优先遍历的主要思想就是:首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未访问过的顶点;当没有未访问过的顶点时,则回到上一个顶点,继续试探访问别的顶点,直到虽有的顶点都被访问过。深度优先遍历是沿着图的某一条分支遍历直到末端,然后回溯,再沿着另一条进行同样的遍历,直到所有的顶点都被访问过为止。
  11. 广度优先遍历的主要思想就是:首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问它们相邻的未被访问过的顶点,直到所有顶点都被访问过,遍历结束。
  12. 图就是有N个顶点和M条边组成的集合。
  13. 树是指任意两个节点间有且只有一条路径的无向图。
  14. 二叉树的特点是每个节点最多有两个儿子。
  15. 父节点比子节点小,这样的二叉树称为最小堆。 如果所有父节点都比子节点大,则称为最大堆。
  16. 创建堆的算法:把n个元素建立一个堆,首先可以将这n个节点以自顶向下、从左到右的方式从1到n编码。这样可以把这n个节点转换成为一颗完全二叉树。紧接着从最后一个非叶节点(节点编号为n/2)开始到根节点(节点编号为1),诸葛扫描所有的节点,根据需要将当前节点向下调整。直到当前节点为根节点的子树符合堆的特性。
  17. 堆排序的思想:先建立最小堆,然后每次删除顶部元素并将顶部元素输出或者放入一个新的数组中,直到堆为空为止。最终的输出或者存放在新数组中的数就已经是排序好的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,665评论 0 12
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 11,136评论 0 19
  • 一:数据结构概论 在数据结构中数据分为两种关系,一种时线性,一种是非线性 线性关系,比如一张学生登记表。 非线性关...
    夏广成阅读 11,447评论 1 1
  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 7,007评论 0 3
  • 工作总结: 1、今天做2017年(7)湖南卷。题目偏南,不是那种简单直入,还是需要拐个小弯的。 2、四点五十开会,...
    放牛的小孩阅读 2,286评论 0 0

友情链接更多精彩内容