- 博客(5)
- 收藏
- 关注
原创 【Linux应用开发】gcc编译过程
链接(Linking):链接阶段将目标文件与所需的库文件链接在一起,解析符号引用并生成可执行文件。预处理(Preprocessing):在预处理阶段,源代码会经过预处理器的处理,包括展开宏定义、包含头文件、条件编译等操作。编译(Compilation):编译阶段将预处理后的源代码翻译成特定目标平台的汇编语言。汇编(Assembly):汇编阶段将汇编代码转换成目标平台的机器码或可重定位的目标文件。cc1:将.c文件处理成.s文件,对应预处理和编译过程。as:将.s文件处理成.o文件,对应汇编过程。
2024-03-24 18:57:58
800
2
原创 排序算法大总结(选择、冒泡、插入、归并、快排、堆排序)(附带C++参考代码)
一般的排序算法选择快速排序,有两个原因:1.快排的时间复杂度较优 2.实验结果证明,快排的时间复杂度的表达式中常数项是最小的(常数时间最小)。需要稳定性时选择归并排序。额外空间有限制时选择堆排序。
2024-03-16 20:19:17
1062
2
原创 堆排序和桶排序——左神数据结构与算法Day3学习笔记C++版本(持续更新)
时间复杂度:O(N*M),其中N为数据个数,M为数据位数。时间复杂度:O(N*logN)额外空间复杂度:O(1)额外空间复杂度:O(M)
2024-03-16 19:54:23
270
1
原创 归并排序、快速排序——左神数据结构与算法Day2学习笔记C++版本(持续更新)
利用递归求整个数组的最大值,代码如下。类似一个二叉树,不知道的结果压栈继续算,已经知道的结果从栈里弹出。递归行为的时间复杂度估计:只要是满足子问题等规模的递归,都可以用master公式计算时间复杂度。,T(N)指的是母问题的数据量是N级别的,a是子问题的调用次数,b是子问题的规模(这个问题中每个子问题的规模都一样),O(N^d)是除去子问题的调用之外,剩下的过程的时间复杂度。find_Max就满足master公式,find_Max 的T (N)=2*T(N/2)+O(1)。
2024-03-14 21:24:04
519
1
原创 选择、冒泡、插入排序——左神数据结构算法Day1学习笔记
算法的常数操作数量级的数学表达式中,去除常数的最高阶项,比如aN²+bN+c的时间复杂度就是O(N²)。时间复杂度是数据量大到一定程度时,评价算法优劣的指标。当时间复杂度相同时,分析不同数据样本下的实际运行时间来比较算法的优劣。:暴力尝试(不追求时间复杂度、好实现的方法)和自己的想测试的方法做比较。生成一个随机样本产生器,比对两个方法的结果是否相同,经过很多很多组测试,测试自己的方法的正确性。数据的状况会影响时间复杂度,按最差情况估计,插入排序的时间复杂度为O(N²)。二分法:时间复杂度O(logN)。
2024-03-13 18:31:40
861
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅