- 博客(8)
- 收藏
- 关注
原创 中缀表达式转后缀表达式原则
从左到右处理各个元素,知道末尾出现三种情况:1. 遇到操作数,直接加入后缀表达式2. 遇到界限符。遇到“(”直接入栈;遇到“)”依次弹出栈内运算符并加入后缀表达式,直到弹出“(”为止。注意“(”不加入后缀表达式。3. 遇到运算符。依次弹出栈中优先级高于或者等于当前比较的运算符,并加入后缀表达式,若碰到“(”或者栈空时,停止操作。之后再把当前运算符压入栈中。上述三种情况处理完 字符串后,将栈中剩余运算符依次弹出,并加入后缀表达式。
2022-11-28 17:39:41
365
原创 普利姆(prim)算法与迪杰斯特拉(dijestella)算法
迪杰斯特拉算法是用来寻找节点之间的最短路径的,所及基本代码思想与prim算法相似。对于邻接表表示的图,时间复杂度为O(|V|+|E|)对于临界矩阵表示的图,时间复杂度为O(|V|2)二: 迪杰斯特拉(dijestella)算法。一:普利姆(prim)算法。
2022-11-21 14:41:47
1532
原创 各类基础排序代码(简单插入,希尔,快速,堆,归并)
dk表示将原数组分成若干数组序列的偏移量,注意,对于分成的不同数组序列,调用简单插入排序,并不是一个序列完成后进行另一个序列,而是在原数组序列中不断加1,进行不同数组序列的切换。堆排序无需递归,事件复杂度也比较低,也是不稳定的算法。一个用来整体调整堆。归并排序我认为是比较难理解的了,它有两个函数主体,并且一个函数为递归调用,需要一个辅助数组。将原数组分成若干归并段,两两归并。快速排序正如其名,事件复杂度低,但是不稳定,需要递归,存在两个函数主体。无需递归等调用嵌套两层循环,从数组的第二项开始往前插入。
2022-11-14 17:35:48
288
1
原创 矩阵三元组的快速转置
1. 三元组矩阵的快速转置主要借助了两个外部数组,Num[]和Copt[],Num[]存放了转置之前的矩阵每一列中元素的个数。Copt[]矩阵存放了转置之后的三元组举证项应该存放的数据结构中的位置。2. 由于转置前第n列第一个元素位置在转置之后的位置是转置之前第n列之前所有元素之和,所以通过Num[]和Copt[]数组就可以记录转置之后三元组矩阵每一项应该存放的位置。
2022-11-14 15:57:04
1654
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人