
学习笔记
farthjun
菜鸟一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
排序方法(一)选择排序
使用语言:c语言,编译器visual studio 2017一.基本思想选择排序的基本思想是,从第一个数开始遍历,找到最小的数,和第一个数交换;从第二个数开始遍历,找到最小的数,和第二个数交换;…一直遍历到最后一个数。这样确保了最小的数总能排在前面,实现数的从小到大排序。二.代码实现//选择排序,由小到大#include<stdio.h>void swap(int i, i...原创 2019-01-18 18:21:29 · 414 阅读 · 0 评论 -
C++实现通过UDP传输文件
一. 程序说明1.本程序通过 UDP 来传输文件及其管理元数据(文件名、大小和日期等),包括client.cpp和server.cpp,分别是客户端程序和服务端程序。2.文件以二进制形式传输。3.由客户端指定文件目录,将文件传送到服务端,除了文件名之外,附带传送文件大小、创建时间等信息。4.获取文件大小和创建日期的详细程序可以看C++获取文件的创建时间和大小5.客户端发送完毕后,向服务端...原创 2019-05-13 23:16:41 · 8883 阅读 · 11 评论 -
经典回溯法:N皇后问题、马周游问题
回溯法是一种选优搜索法,很多情况下思路和图的深度遍历很相似。下面主要分享两道比较典型的回溯法问题。一 .N皇后问题(题目来源:SOJ)DescriptionGiven N queens on an N*N chess board, find the number of ways of placing these queens so that they will not attack each...原创 2019-05-19 00:13:40 · 1439 阅读 · 0 评论 -
Visual Studio未加载 ntdll.pdb的可能错误原因
曾经运行的时候出现过这个问题,后来发现自己new一个数组的时候写成了int *data = new int(MAX_SIZE),然后delete []data。这样在对data[i]进行操作的时候有时候会出现这个错误或者触发断点。...原创 2019-05-20 00:21:07 · 18771 阅读 · 2 评论 -
C语言中嵌入SQL语句
一. 编译环境visual studio 2017, MySQL Workbench 8。创建新项目后,需要在visual studio内完成一系列设置,以实现链接到MySQL。具体步骤如下:(1) 在"项目"->"属性"栏目中设置平台为X64:注意平台和"配置管理器"中的"活动解决方案平台"都要设置。(2) 在"项目"->“属性”->“C/C++”->“常规”-...原创 2019-05-27 13:00:25 · 7632 阅读 · 0 评论 -
系统分析与设计——UML图总结
一. 前言期末考试之前,我复习系统分析与设计的时候对UML图做了一些知识汇总,现在放到博客上。如果有不对或不恰当的地方,欢迎各位指正。本文仅仅起记录作用,可随意转载,荣幸之至。截图来自网络或是老师的PPT二. 概述· 系统模型的三个主要部分:功能模型:从用户的角度来看,系统的功能。包括用例图等对象模型:用对象表示系统的结构和子结构、属性、操作或关系等。包括类图动态模型:表示系统的内...原创 2019-07-14 14:32:09 · 10657 阅读 · 6 评论 -
系统分析与设计课程知识点总结
一.前言我们课程采用的课本是《设计模式解析》(第二版),老师讲的内容以书为基础,在此之上做了一些扩展。这里记录一下期末时我总结的知识点,有不对的地方欢迎指正,欢迎转载。每一章的标号是采用老师的PPT编号。博客中的图片来自老师PPT或者《设计模式解析》(第二版)。二.知识点总结02-OO设计样式设计方法:· 解耦(decouple):是指让各种事物相互独立地行事,或者至少明确地声明...原创 2019-07-21 20:40:01 · 1902 阅读 · 0 评论 -
Leetcode 142 环形链表Ⅱ
以下两种方法均来自该题的“题解”。一. 使用set遍历节点的同时将之放入set。如果某次放入没有引起size的增大,说明该节点是重复的,即环形链表的入口,返回它即可。时间空间复杂度均为O(N)ListNode *detectCycle(ListNode *head) { set<ListNode*> s; ListNode *temp = head; int n = s.s...原创 2019-07-23 14:44:46 · 272 阅读 · 0 评论 -
Leetcode 984 不含AAA或BBB的字符串
贪心选择:A比B多,每次消耗两个A一个B;B比A多,每次消耗两个B,一个A;A与B相同,同时消耗一个A一个B。注意考虑一方的个数减为0的情况。class Solution {public: string strWithout3a3b(int A, int B) { string ans; while(1){ if(!A&&B){ ans...原创 2019-07-28 14:58:51 · 229 阅读 · 0 评论 -
Leetcode152乘积最大子序列
解法参考自评论区的大佬。解法1:最大子序列的乘积只有在一种情况下为负:只有一个元素且该元素为负。设想序列中间的一个数,如果它的左边和右边为均为正或均为负,则可以将它们加入子序列,乘积一定是变大的;如果左边和右边为一正一负,则必然可以加入其中一个。只有遇到0时比较特殊,需要从0后的第一个非0元素重新开始计算。所以,我们只需要从前往后累乘,从后往前累乘,取整个过程中最大的值即可。int m...原创 2019-08-13 15:42:57 · 234 阅读 · 0 评论 -
EX2:用CImg重写、封装给定的Canny代码,并测试Code0
本博客为计算机视觉课程的一次作业。任务是用CImg改写C实现的Canny算法。源码可以在百度网盘链接下载,提取码 3ajwCanny的几个主要步骤:使用高斯滤波器,以平滑图像,滤除噪声。计算图像中每个像素点的梯度幅值和方向。应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应应用双阈值(Double-Threshold)检测来确定真实的和潜...原创 2019-09-22 18:38:56 · 508 阅读 · 0 评论 -
C++实现不闪屏的字符游戏--贪吃蛇
一.写在前面的废话贪吃蛇游戏早在大一刚学编程的时候就写过了,虽然那时候有各种bug…最近有个同学问我不闪屏的贪吃蛇怎么写,我学习了一位大佬的博客,动手做了一个不闪屏的版本。二.实现方法首先我们要弄清楚闪屏的原因。因为贪吃蛇是一直在动的,我们就需要不停地输出。当然我们不能一幅图一幅图的输出,也就是说我们要让贪吃蛇看起来在一个框框内移动。普遍的实现方法是,用清屏(system(“cls”))和输...原创 2019-04-30 22:35:10 · 3545 阅读 · 1 评论 -
C++获取文件的创建时间和大小
使用C++获取文件的创建时间和大小。话不多说直接上代码:#include<Windows.h>#include<iostream>#include<string>#include <fstream>#include <io.h>using namespace std;BOOL GetFileTime(HANDLE hFil...原创 2019-05-08 16:01:18 · 7723 阅读 · 0 评论 -
循环神经网络RNN入门
一.什么是RNN?RNN(Recurrent Neural Network),循环神经网络。网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关,即需要处理整个序列。RNN就是一种用于处理序列数据的神经网络。二.应用举例(1) 判断一个句子的情感倾向,积极用‘+’表示,消极用‘-’表示:句子的前后有关联,是序列数据,适合用RNN处理。(2) 给定一张图片,给出相应的图片描...原创 2019-05-05 10:44:28 · 927 阅读 · 0 评论 -
排序方法(二)快速排序
使用语言:c语言,编译器visual studio 2017一.基本思想假设由小到大排序。则快速排序的基本思想是,用一个左指针(或下标)记录最左边的数,用一个右指针记录最右边的数。选取一个数作为基数(随机取即可,我取的是第一个数),实现基数左边的都不大于基数,基数右边的都不小于基数,再递归地分别对基数左右的数进行快速排序,最后得到排序完毕的序列。具体实现过程:(1)设数组为array[],设...原创 2019-01-19 10:12:53 · 284 阅读 · 0 评论 -
排序方法(五)堆排序
使用语言:c语言,编译器visual studio 2017一.基本思想要明白堆排序,首先要明白完全二叉树的概念。对于一个二叉树,假设它的深度为h,如果除第h层外,其余各层结点数都达到最大,且第h层所有结点都集中在左边,则它是完全二叉树。如图:堆就是个按顺序存储的完全二叉树。从图中,我们可以发现:(1)假设一个元素序号为i,则若它的左孩子存在,序号就是2i+1,右孩子序号2i+2。如...原创 2019-01-24 14:36:43 · 472 阅读 · 0 评论 -
排序方法(三)插入排序
使用语言:c语言,编译器visual studio 2017一.基本思想假设从小到大排序。从第二个数开始往后遍历,将每个数插入到前面的有序序列中,最后形成一整个有序序列。将第二个数与第一个数比较,小的放前面,可以视为第一次插入;将第三个数插入到第一第二个数形成的有序序列中,这是第二次插入;…将最后一个数插入完毕,则排序完毕。例子:将下列数排序:56,48,10,7,0,23,10,99,90...原创 2019-01-20 12:16:38 · 453 阅读 · 0 评论 -
排序方法(四)归并排序(由上到下)
使用语言:c语言,编译器visual studio 2017一.基本思想从上到下的归并排序的基本思想主要分成三步。(1)分解:将序列大致分成长度相等的两部分,再运用递归使其越分越细,直到分成单个元素;(2)排序:根据大小关系将相邻两个元素排好序;(3)合并:将两个有序序列合成一个有序序列,直到合成完整的序列。图例:二.代码实现#include<stdio.h>#inclu...原创 2019-01-21 12:43:46 · 781 阅读 · 2 评论 -
AT&T汇编语言初步
关于AT&T汇编语言,网上有许多语法介绍,大家可以移步参考。我这里主要介绍几个汇编实例,如何在linux系统编译,以及浮点数的输出。一. 一个简单的汇编实例:输出hello,world!.section .data **#以下为数据段** output: *...原创 2019-03-26 13:44:54 · 2341 阅读 · 1 评论 -
将十进制大数转为二进制
将十进制转为二进制,我们一般使用除二取余法,将余数从下往上组合起来,就能得到该数的二进制形式了:对大数也是一样,我们只需要用循环重复这一过程即可。使用string来存大数,用int型数组num[]存一位一位的大数,用int型数组ans[]存最终的二进制结果。从大数的第一位开始循环除以2,结果继续存到num[]中,直到num每一位都是0,运算就结束了。下面放代码:#include<i...原创 2019-04-11 21:07:39 · 5311 阅读 · 1 评论 -
MySQL - Cannot add or update a child row: a foreign key constraint fails
前几天我在使用MySQL的时候,创建了一个以自己的主键为外键的表,代码是这样的:create table course ( cno VARCHAR(2) NOT NULL, cname VARCHAR(20), cpno VARCHAR(2) NULL, credit INT, primary key(cno), foreign key...原创 2019-04-11 21:27:28 · 540 阅读 · 0 评论 -
代码命名方法规范(转)
转自 魏波-的博客 代码的两种命名方法:驼峰命名、匈牙利命名(优缺点)一、骆驼命名法: 小驼峰法(camel方法)变量一般用小驼峰法标识。 第一个单词以小写字母开始;第二个单词的首字母大写或每一...转载 2019-05-04 00:38:26 · 1026 阅读 · 0 评论 -
进程间共享内存及其简单实例
一. 进程间通信进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。进程通信根据交换信息量的多少和效率的高低,分为低级通信(只能传递状态和整数值)和高级通信(提高信号通信的效率,传递大量数据,减轻程序编制的复杂度)。高级通信的三种主要方式为:共享内存模式、消息传递模式、共享文件模式。这里主要介绍共享内存模式实现方法和简单例子。二. 进程...原创 2019-05-04 01:06:28 · 890 阅读 · 0 评论 -
go语言实现最小堆并测试
作为go语言初学者,非常有必要多写写代码来熟悉go的语法和风格,本文是关于go语言实现最小堆,就不对最小堆进行赘述了,具体的构建原理可以参考我的这篇博客下面直接上代码~package mainimport "fmt"type Node struct { Value int}// 用于构建结构体切片为最小堆,需要调用down函数func Init(nodes []Node) {...原创 2019-09-24 10:44:27 · 932 阅读 · 0 评论