菜鸟笔记
提升您的技术认知

算法笔记-ag真人游戏

动态规划题解

菜鸟阅读 : 1369

递归和动态规划都是将原问题拆成多个子问题然后求解,他们之间最本质的区别是,动态规划保存了子问题的解,避免重复计算。基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了...

【c 】“反转链表”相关的题目

菜鸟阅读 : 1745

1.反转链表:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 (1)这道题是经典的题目了,用迭代的方式解决也是很容易的,代码量也不大。分享一个我个人做题的方式,我会先在题目开头写注释,理清我结题的思路,然后写代码就...

【c 】数组中的第k个最小元素

菜鸟阅读 : 813

分治思想求解的问题,但是比较特殊,只有分解问题和求解小问题,不需要合并 每次也只需要经过判断,分解一半,所以比其他分解两边的效率高 最坏情况时间复杂度为o(n^2),期望时间复杂度为o(n) 找基准值时候可以考虑随机选择 #include&...

递归

菜鸟阅读 : 1216

递归的特点: (1)递归就是在过程或函数里调用自己;(2)在使用递归时,必须有一个明确的递归结束条件,否则会陷入死循环;(3)递归算法通常比较简洁,但运行效率较低;(4)在递归调用的过程中系统为每一层的返回点、局部变量等开辟了栈来存储,所以...

c 插入排序

菜鸟阅读 : 1470

性能分析:   时间复杂度:o(n^2)   空间复杂度:o(1) 但是综合来讲,要比冒泡排序和选择排序好一些。     #include #include u...

结构体对齐(字节对齐)规则及大小计算

菜鸟阅读 : 1790

什么是字节对齐 这跟读取数据有关,cpu读取一次能读取到的内存大小跟数据总线的位数有关,如果数据总线为16位,那么cpu一次能够读取2字节;如果为32位那么cpu一次可以读取4字节,而读取数据是需要消耗时间的,为了提高效率,尽量让同一个数据...

递归之求数组最大值

菜鸟阅读 : 804

这个比较简单,想清楚基线条件和递归条件就可以了,直接看代码(vs直接运行): #include #include using namespace std; int arraymax(int data[], int length); int ...

递归之快速排序

菜鸟阅读 : 1124

递归快速排序的步骤: (1)选择基准值 (2)将数组分成两个子数组:小于基准值的元素组成的子数组和大于基准值的元素组成的子数组。 (3)对这两个子数组进行快速排序。 c 代码(可在vs直接运行): #include

递归之二分查找

菜鸟阅读 : 3102

简单查找的时间复杂度为o(n) 二分查找的时间复杂度为o(logn) 用递归实现二分查找:   基线条件:数组只包含一个元素。如果如果要查找的值与这个元素相同,就找到了;否则说明不在数组中。   递归条件:把数组分成两半,将其中一半丢弃,并...

网站地图