- 博客(56)
- 收藏
- 关注
转载 BST 增删查操作 递归/非递归实现
约定: 多次插入同一个key的节点,其value值取最后一次插入的值。递归实现: 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 class BST { 5 private: 6 struct BSTNode { 7 int key, va...
2018-12-13 13:49:00
268
转载 容器vector容量翻倍增长策略效率分析
很多语言的可动态变化容量的容器,其容量扩展一般是翻倍增长的策略,这里来分析一下翻倍增长策略的效率,以C++的vector容器为例。 我们不妨使用分摊复杂度分析:假设初始容量为一个常数N,连续执行n次insert()操作,最终size增长至N+n,根据算法策略,填装因子一直在(50%,100%]范围内,因此有: size(n) ≤...
2018-12-11 09:40:00
246
转载 整数分解为若干项之和
7-37整数分解为若干项之和(20分)将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。输入格式:每个输入包含一个测试用例,即正整数N (0<N≤30)。输出格式:按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n...
2018-09-06 12:46:00
289
转载 PAT-B-1080 MOOC期终成绩
1080MOOC期终成绩(25分)对于在中国大学MOOC(http://www.icourse163.org/)学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为G=(Gmid−term×40%+Gfinal×60%),如果Gmid−term...
2018-09-03 15:25:00
93
转载 最大公约数 + 最小公倍数
最大公约数(Greatest Common Divisor, GCD)欧几里得算法:计算两个非负整数p和q的最大公约数:若q是0,则最大公约数是p;否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。递归1 int gcd_recursion(int p, int q){2 //p >= q3 if( q == 0 )4...
2018-09-03 10:24:00
124
转载 Fibonacci数
斐波那契数列(Fibonacci Sequence)又称黄金分割数列,或兔子数列(因为是斐波那契观察兔子生殖而总结得到)。在数学上,被定义为递推式:F(1)=1, F(2)=1, F(3)=2, F(4)=3, F(5)=5, ..., F(n)=F(n-1)+F(n-2)(n≥3)。单元测试#include <stdio.h>#include ...
2018-09-03 09:44:00
163
转载 排序
在处理数据时,经常需要将一组无序序列变得有序,这里就需要用到排序算法。排序算法经过几十年的发展,排序算法也有很多种,这里记录一下入门的排序算法,有:冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、桶排序、基数排序等。时间复杂度(T(n)):指算法执行时耗费的时间长度。空间复杂度(S(n)): 指算法运行时额外占用的空间。一般不算输入,有时也不算必然...
2018-09-02 11:02:00
72
转载 PAT-B-1020
1020月饼(25分)月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只...
2018-09-01 22:45:00
98
转载 PAT-B-1003
1003我要通过!(20分)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有P、A、T这三种字符,不可以包含其它字符;任意形如xPATx的字符串都可以获得“答案正确”,其中x...
2018-09-01 22:29:00
101
转载 递归
递归---Recursion在学习清华大学邓俊辉邓公的数据结构这门课中,邓公引用了这样一句话:To iterate is human, to recurse, divine. (迭代乃人工,递归方神通。)足见递归算法的重要性。什么是递归?程序调用自身的方式叫做递归,这里直接传送百度百科:递归。递归基(Recursion-Base)递归一般会有边界条件...
2018-08-31 16:06:00
195
转载 数据结构
数据结构某种组织与保存数据的方式,分物理与逻辑两种角度来设计。物理一般是数组、链表,逻辑多种多样,如树、图等。某一具体的数据结构必然也要配备相对应的操作集,这些操作集要尽可能的高效,才能最大程度发挥该数据结构的优势。一般而言,操作集有:增加元素、删除元素、修改元素、查找元素、返回当前规模、清空当前数据等。对于查找元素,这里规范语义:当查找元素时,返回不小于该元素的第...
2018-08-31 15:58:00
94
转载 PAT-B-1045
1045快速排序(25分)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 $N = 5$, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大...
2018-08-27 14:44:00
89
转载 PAT-B-1040
1040有几个PAT(25分)字符串APPAPT中包含了两个单词PAT,其中第一个PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二个PAT是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种...
2018-08-26 21:18:00
96
转载 LeetCode-Easy
371.Sum of Two Integers: 不用+、-计算两个数之和,用^、&。 1 int getSum(int a, int b) { 2 int sum = a; 3 4 while( b != 0){ 5 sum = a^b; 6 b = (a&b)<<1...
2018-08-26 10:24:00
81
转载 LeetCode-784
784.Letter Case PermutationGiven a string S, we can transform every letter individuallyto be lowercase or uppercase to create another string. Return a list of all pos...
2018-08-26 10:23:00
143
转载 PAT-B-1030
1030完美数列(25分)给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M≤mp,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出...
2018-08-24 16:59:00
175
转载 PAT-B
1003:分析题目要求就会发现,是要求出P之前的A个数、PT中间的A个数、T之后的A个数,以及它们之间的关系,依次来判断Yes or No,因此解题前要多分析题目题意。C语言实现:https://www.cnblogs.com/EasonDongH/p/9571917.html1015:主要是对Compare函数的各种情况考虑周全。1020:用到贪心策略,即优先卖最贵的月饼,然后...
2018-08-24 16:59:00
96
转载 抢红包算法
最近关注了CSDN的程序员小灰,前两天发了个红包算法看着还蛮有意思的,自己使用C实现一下!(PS:后来才发现早已烂大街了……o(╥﹏╥)o)规则:1. 所有人抢到金额之和等于红包金额,不能超过,也不能少于2. 每个人至少抢到一分钱3. 要保证所有人抢到金额的几率相等先做好准备:#include<stdio.h>#include<stdlib....
2018-05-06 02:14:00
183
转载 问题记录
迭代变量为什么foreach迭代变量不能修改值?我知道是在实现IEnumerator枚举器的时候Current属性设置为只读,但是问题是为什么将其设置为只读属性呢?而且在自定义实现该枚举器的时候,将其设置为读写的,还是会提示迭代变量不可更改,就是说foreach强行限制不允许迭代变量赋值,为什么要这样做?目前我只能这样解释:foreach迭代变量每次都会去迭代当前变量地址,获取下...
2018-05-05 23:34:00
98
转载 实现与研华PCI采集卡通讯
如果使用过PCI采集卡的盆友应该对“研华”这个品牌不陌生,可以说研华还是很强大的。最近因为工作需要,使用一块研华的PCI1714UL型号的采集卡,去高速采集电压信号,学习了几天后分享给各位。采集卡首先介绍一下这块采集卡。品牌:研华Advantech,型号:PCI1714UL,基本参数:4通道,12位精度,采样频率:10MS/s,采样:8192/通道,可采集电压范围有:±5、±2....
2018-04-13 10:42:00
5209
转载 C#常用数据结构
这里主要总结一下在工作中常碰到的几种数据结构:Array,ArrayList,List<T>,LinkedList<T>,Queue<T>,Stack<T>,Dictionary<K,T>引用自:https://blog.csdn.net/qiaoquan3/article/details/51380992转载于:htt...
2018-04-09 16:45:00
85
转载 使用USBCAN通讯
使用ZLG USBCAN-E-U,通过C#实现通讯:1、建一个CANDevice实体类,传递一些参数,并且保存一些设备的型号、ID,以及波特率等参数using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading....
2018-04-05 12:00:00
284
转载 COMMTIMEOUTS读写串行口超时
参考百度百科 COMMTIMEOUTS 在用ReadFile和WriteFile读写串行口时,需要考虑超时问题。如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFile或WriteFile的操作就会结束。要查询当前的超时设置应调用GetCommTimeouts函数,该函数会填充一个COMMTIMEOUTS结构。调用SetCommTimeouts可以用某一个COMMTI...
2018-03-15 16:19:00
120
转载 Multithreading With C# Cookbook---Chapter5---使用C#6.0
概念异步函数(asynchronous funcation)是TPL之上的更高级别的抽象,真正简化了异步编程。抽象隐藏了主要的实现细节,使得程序员无须考虑许多重要的事情,从而使异步编程更容易。更多内容创建异步函数,首先用async关键字标注一个方法(不能在Main中使用async),然后异步函数必须返回Task或Task<T>类型(不推荐使用async void方...
2018-03-08 10:38:00
99
转载 Multithreading With C# Cookbook---Chapter4---使用任务并行库
概念任务并行库(Task Parallel Library,TPL),在.NET Framework 4.0引入,4.5有所改进。我们可以把线程池认为是一个抽象层,其隐藏使用线程的细节;TPL可被认为是线程池上的又一个抽象层,其隐藏了与线程池交互的底层代码,并提供更方便的API。更多内容TPL核心概念是任务。一个任务代表一个异步操作,该操作可以通过多种方式运行,可以使用或不使...
2018-03-01 12:57:00
94
转载 Multithreading With C# Cookbook---Chapter3---线程池
概念因为创建线程是昂贵的操作(线程管理/调度、上下文切换等操作相当耗时),如果为每个短暂的异步操作去创建新线程会明显增加开销。因此我们考虑只花费极少的时间来完成创建很多异步操作。叫做线程池(Thread pooling)。我们先分配一些资源到资源池,每次需要使用的时候从资源池获取,用完之后归还至线程池即可。更多内容基于.NET,通过System.Threading.Threa...
2018-02-27 11:00:00
93
转载 Multithreading With C# Cookbook---Chapter2---线程同步
概念多个线程同时使用共享对象会造成很多问题,同步这些线程使得对共享对象的操作能够以正确的顺序执行非常重要,导致竞争条件的问题的原因就是线程没有正确的同步。当一个线程在使用共享资源的时候,其他线程应该依次等待,这种常见问题通常被称为线程同步。更多内容首先应尽量避免在多个线程间使用单一对象,从而去掉复杂的同步构造。如果实在无法避免,则只能使用原子操作。这个操作一旦开始,就一直运行...
2018-02-23 11:41:00
120
转载 Multithreading With C# Cookbook---Chapter1---线程基础
概念为防止一个应用程序控制CPU而导致其他程序或操作系统被永久挂起,操作系统采用某种方式将物理计算单元分割为一些虚拟进程,给予每个程序一点量的计算能力。且,操作系统始终能优先访问CPU,并能调整每个程序访问CPU的优先级。线程基于这一概念实现。可以认为线程是一个虚拟进程,用于独立运行一个特定的程序。更多内容线程会消耗大量操作系统资源。多个线程共享一个物理处理器将导致操作系统忙...
2018-02-23 10:02:00
116
转载 如何计算算法的时空复杂度
算法:时间复杂度:原文地址:http://blog.csdn.net/com_ice/article/details/79025117时空复杂度:https://www.cnblogs.com/zakers/archive/2015/09/14/4808821.html推荐:http://blog.csdn.net/yangwei282367751/articl...
2018-01-31 10:47:00
141
转载 常用Winform控件相关属性、方法、事件等
DataGridViewListViewTreeViewTextBox自动提示补全功能Combox自动提示补全功能转载于:https://www.cnblogs.com/EasonDongH/p/8385302.html
2018-01-30 15:38:00
87
转载 SQL查询一个表中类别字段中Max()最大值对应的记录
数据库有一个表 Employee,里面有个点击量字段Salary和一个类别字段DepartmentId以及其它信息字段,现在要搜出每个类别中Salary最大的那条记录,如果是10个类别,那么结果应该是10条记录,如果最大Salary有两个相同的则全部保留:select Department.Name Department, a.Name Employee, Salary ...
2018-01-30 15:33:00
657
转载 Winform---代码实现递归动态生成TreeView菜单
数据库菜单表:SQL脚本: 1 use master 2 go 3 4 create database TreeViewDemo 5 on primary 6 ( 7 name='TreeViewDemo_data', 8 filename='C:\2Study\SQLServer\TreeViewDemo\TreeViewD...
2018-01-19 12:02:00
267
转载 Winform---生成条形码,二维码,分界线并打印
生成条形码:引用BarcodeX.dll --- 该dll下载,返回Image类型public Image DrawBarCode(string serialNum, int width, int height){ Fath.BarcodeX barCode = new Fath.BarcodeX();//创建条码生成对象 //生成条形码 ...
2018-01-18 09:51:00
717
转载 超市管理系统---总结篇
花费一周左右的时间完成一个练习项目:超市管理系统,基于C#winform+ADO.NET+SQLServer,分为前台系统+后台系统。有兴趣的小伙伴可以围观:GitHub:https://github.com/EasonDongH/SupermarketManagementSystem总结一下:技术点:ADO.NET;带参数SQL;存储过程;三层架构;分页查询等学习...
2018-01-07 04:03:00
765
转载 GitHub---第一次push勾选了readme导致版本冲突
push项目到远程时一直出现错误:原因是当时在创建仓库的时候,勾选了README,导致远程与本地版本不同,一直冲突。如果不重要我们可以强制更新(会覆盖远程,多人开发不建议):$ git push -u origin master -f正确的做法应该是先把远程copy到本地,再一次更新过去:push前先将远程repository修改pull下来$ git pull ...
2018-01-07 01:22:00
294
转载 SQLServer---between
在数据库里between用法,between A and B 是包含A不包含B。且必须是A小于B才行!!!比如,between 1 and 10是大于等于1到10不包括10的范围,但如果你写的是between 10 and 1 ,当你输入1-10的数字时是判断为错的,因为它先跟10对比发现小于10就不会进入了!!!转载于:https://www.cnblogs.com/Eason...
2018-01-06 23:04:00
1586
转载 SQLServer---主键级联更新或删除
如果有主键或外键就不能修改或删除了,我们可以在创建约束的时候就加上级联更新或删除,这样只要主键更新或删除,所有外键都会更新或删除。代码示例:--添加级联更新if exists(select * from sysobjects where name='fk_ProductId_PI')alter table ProductInventory drop constrain...
2018-01-05 14:20:00
438
转载 Winform + ADO.Net 实现分页查询
使用ADO.NET + 存储过程,在winform里实现分页查询的功能。实现思路:使用存储过程,根据查询条件,查出若干个表;返回DataSet,再去读取DataSet的Table。以一个超市管理系统里面登录日志的查询为例,做示例代码。数据库表结构一部分测试数据:存储过程编写 1 if exists(select * from sys...
2018-01-03 10:24:00
307
转载 C#基础--抽象工厂
开发需求:同一套系统,需要根据客户需求采用不同的数据库。一般实现:开发多套系统,每套系统对应一个数据库。缺点:需要同时维护多套系统,难度大。解决:使用抽象工厂模式,同一套系统里面开发多个数据库的DAL,根据客户需求来确定使用哪个数据库。抽象工厂设计模式基于抽象工厂模式设计DAL方案项目各层之间的引用代码示例根据以上,建立各层,各层引...
2017-12-26 10:52:00
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人