![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法思想
文章平均质量分 89
你好,明天,,
你好,明天。一个今天胜过两个明天。
展开
-
数据结构知识点总结
图的存储使用:①邻接矩阵:二维矩阵,如A[i][j]=n(权值)或者A[i][j]=0/1,无线图的邻接矩阵是对称矩阵。①自底向上堆化:会产生“气泡”浪费存储空间,用于插入元素,即先将元素放至数组末尾,上浮。堆的插入和删除效率高,时间复杂度是O(logn),初始化的时间复杂度是O(n)。递归,排序,二分查找,搜索,哈希算法,分治算法,动态规划,字符串匹配算法等。②自顶向下堆化:用于删除堆顶元素,将末尾元素放至堆顶,再向下堆化,下沉。数组,栈,队列,链表,散列表,二叉树,堆,跳表,图,树。原创 2023-10-17 11:09:42 · 414 阅读 · 0 评论 -
Python面试题常用函数总结
python面试编程题目经常用到的函数总结。原创 2023-04-21 09:13:49 · 773 阅读 · 1 评论 -
机器学习梯度下降算法详解
【什么是梯度下降】首先我们可以把梯度下降拆解为梯度+下降,那么梯度可以理解为导数(对于多维可以理解为偏导),那么合起来变成了:导数下降,那问题来了,导数下降是干什么的?这里我直接给出答案:梯度下降就是用来求某个函数最小值时自变量对应取值其中这句话中的某个函数是指:损失函数(cost/loss function),直接点就是误差函数。一个算法不同参数会产生不同拟合曲线,也意味着有不同的误差。损失函数就是一个自变量为算法的参数,函数值为误差值的函数。所以梯度下降就是找让误差值最小时候算法取的参数转载 2022-05-24 10:30:59 · 905 阅读 · 0 评论 -
基于群签名和同态加密的联盟链双重隐私保护方法_文献总结
2008 年提出的区块链是一种分布式的链式数 据结构,它具有去中心化、不可篡改、不可伪造等众多优点,被认为是金融服务基础设施的未来,在金融、医疗数据共享、物流监管等领域得到了 极为广泛的应用。区块链的应用模式目前主要分为 3类:公有链、联盟链和私有链。其中,公有链允许节点自由进出,而联盟链和私有链需要授权与验证后方可让节点加入。联盟链由多个机构组成的联盟构成,联盟指定的成员进行账本的生成、共识、维护。 联盟链具有处理事务速度快等优点。 公有链完全公开,用户可自由加入或退出,具有完全去中心化...原创 2022-03-26 17:01:52 · 11279 阅读 · 1 评论 -
编译原理------语法分析器C/C++代码实现
一、实验目的编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。二、实验内容利用C语言编制递归下降分析程序,并对简单语言进行语法分析。2.1 待分析的简单语言的语法用扩充的BNF表示如下:⑴<程序>::=begin<语句串>end⑵<语句串>::=<语句>{;<语句>}⑶<...原创 2019-04-28 17:57:19 · 44830 阅读 · 12 评论 -
编译原理------词法分析器C/C++代码实现
一、实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、实验内容2.1 待分析的简单的词法(1)关键字:begin if then while do end所有的关键字都是小写。(2)运算符和界符: = + - * / < <= <> > >= = ; ( ) #(3)...原创 2019-04-17 10:08:27 · 38533 阅读 · 9 评论 -
十进制转换为二进制非递归栈实现
用栈实现十进制转换为二进制,用到模板库中的关于栈的部分函数。以下是C++源代码:#include<bits/stdc++.h>using namespace std;stack<int> sta;int main(){ int n; while(cin>>n){ while(!sta.empty()) sta.pop(); if(n...原创 2018-12-23 18:06:17 · 660 阅读 · 0 评论 -
数据结构------简单选择排序 C++ 实现
简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 (1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 简单选择排序的时间复杂...原创 2018-12-21 17:05:47 · 524 阅读 · 0 评论 -
数据结构------快速排序 C++ 代码
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键...原创 2018-12-21 12:26:00 · 554 阅读 · 0 评论 -
数据结构----直接选择排序C++代码
插入排序的基本思想是:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。 算法步骤: 首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后...原创 2018-12-20 21:10:43 · 591 阅读 · 0 评论 -
最小生成树------克鲁斯卡尔算法(数据结构)
树(Tree):如果一个无向连通图中不存在回路,则这种图称为树。生成树 (Spanning Tree):无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树。生成树是连通图的极小连通子图。这里所谓极小是指:若在树中任意增加一条边,则将出现一条回路;若去掉一条边,将会使之变成非连通图。最小生成树(Minimum Spanning Tree,MST):或者称为...转载 2018-11-06 20:55:56 · 16088 阅读 · 1 评论