CHANGER'S DEV JOURNAL

深入代码,
记录思考。

记录代码背后的原理,
以及解决问题的过程。

浏览技术笔记

技术笔记 / NOTES

19 篇记录

Openstack 镜像制作

使用libvirt制作qemu镜像 参考 https://docs.openstack.org/image-guide/ CloudInit 参考 https://cloudbase.it/downloads/CloudbaseI…

图的遍历

深度优先搜索 在DFS中,我们会访问节点r,然后循环访问r的每个相邻节点。在访问r的相邻节点n时,我们会在继续访问r的其他相邻结点之前先访问n的所有相邻节点。也就是说,在继续搜索r的其他子节点之前,我们会先穷尽搜索n的子节点。 1…

二叉树的遍历

提高二叉树,我们最先想到的是二叉树的遍历,二叉树的遍历正常有三种方式,分别为前序遍历,中序遍历,和后序遍历。 前序遍历(递归) 12345678void treeWalk(node* n){ if (n == NULL)…

排序算法-堆排序

执行时间 平均情况和最差情况为O(nlog(n)), 存储空间O(1) 算法描述 堆排序其实是一种树形排序算法,其本质就是通过构造最大或者最小堆,不断弹出堆顶数据对数据进行排序。 算法实现 12345678910111213141…

排序算法-快速排序

执行时间 平均情况为O(nlog(n)), 最差情况为O(n^2), 存储空间O(log(n)) 算法描述 快速排序是随机挑选一个元素,对数组进行分割,以将所有比它小的元素排在前面,比它大的元素排在后面。这里的分割经由一系列元素交…

排序算法-归并排序

执行时间 平均情况与最差情况为O(nlog(n)), 存储空间: 视情况而定 算法描述 归并排序是将数组分成两半,这两半分别排序后,再归并在一起。排序某一半时,继续沿用同样的排序算法,最终,将归并两个只含一个元素的数组。这个算法的…

排序算法-选择排序

执行时间 平均情况与最差情况为O(n^2), 存储空间O(1) 算法描述 选择排序简单而低效。我们会线性逐一扫描数组元素,从中挑出最小的元素,将他移到最前面。然后,再次线性扫描数组,找到第二小的元素,并移到前面。如此反复知道全部元…

排序算法-冒泡排序

执行时间 平均情况与最差情况为O(n^2), 存储空间O(1) 算法描述 冒泡排序是先从数组第一个元素开始,依次比较相邻两个数,若前者比后者大,就将两者交换位置,然后处理下一对,依次类推,不断扫描数组,直至完成排序 算法实现 12…

二分查找

提到查找算法时,我们一般都会想到二分查找算法。这个算法非常有用,值得研习。 算法描述 在二分查找中,要在有序数组里查找元素x,我们会先去数组中间元素与x作比较。若x小于中间元素,则搜索数组的左半部。若x大于中间元素,则搜索数组的右…