算法
drinmy
这个作者很懒,什么都没留下…
展开
-
【算法】排序算法
排序算法比较对于评述算法优劣术语的说明算法比较冒泡排序 比较 对于评述算法优劣术语的说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: 运行完一个程序所需内存的大小。 算法比较 冒泡排序 (1)思路:首先,数组n个元素,前后两个元素两两比原创 2020-07-19 01:10:31 · 121 阅读 · 0 评论 -
【剑指offer】09.用两个栈实现队列
题目描述: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路: 使用两个栈实现一个队列的功能,实现的效果图如下: (图源《算法小抄》) 入队:将元素压入s1即可。 出队:s2起到一个中转的作用:当s2为空的时候,可以把s1的所有元素去除添加进s2,这时候s2中的元素就是先进先出的顺序了,接着取出元素即可。 代码实现: va原创 2020-07-08 11:48:45 · 151 阅读 · 0 评论 -
【剑指offer】30. 包含min函数的栈
链接:剑指offer30 **题目描述**: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 **题目思路**: 普通栈的 push() 和 pop() 函数的复杂度为 O(1)O(1) ;而获取栈最小值 min() 函数需要遍历整个栈,复杂度为 O(N)。 本题难点: 将 min() 函数复杂度降为 O(1),可通过建立辅助栈实现: 数据栈 stack : 栈 A用于存储所有元素,保证入栈 push()原创 2020-05-30 15:43:14 · 222 阅读 · 0 评论 -
【算法】查找
概念知识 查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录) 查找算法分类: 1)静态查找和动态查找; 注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。 2)无序查找和有序查找。 无序查找:被查找数列有序无序均可; 有序查找:被查找数列必须为有序数列。 平均查找长度(Average Search Length,ASL):需和指定key进行比...原创 2020-04-28 15:01:21 · 838 阅读 · 0 评论 -
【算法】排序
插入排序 1. 直接插入排序 将待排序的记录Ri+1,插入到已排好序的记录表R0, R1 ,…., Ri中,得到一个新的、记录数增加1的有序表。 直到所有的记录都插入完为止。 如上图,将每一个数在比较之后,插入到适当的位置上。 (1)思路: 比较过程中,首先第一个循环是从第1 ~ 第n-1的数进行比较,接着第二个循环将第i个数与前面的每个数进行比较。 (2)代码: function insert...原创 2020-04-24 01:21:43 · 207 阅读 · 0 评论