- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 Wiershark实验
一、数据链路层实作一 熟悉 Ethernet 帧结构使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。
2020-12-22 20:21:59 845
原创 计算机网络学习笔记(5)——netstat命令
netstat命令介绍在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果你的计算机有时候接收到的数据包导致出错数据或故
2020-10-25 17:21:24 1496
原创 计算机网络学习笔记(4)——arp命令
ARP解释地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就
2020-10-24 17:57:41 819
原创 计算机网络学习笔记(3)——traceroute命令
traceroute命令traceroute (Windows 系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL 值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器traceroute命令语法traceroute [ -adDeFISnrvx ] [ -f first_ttl ] [ -g gateway ] [ -i
2020-10-24 16:54:54 1400
原创 计算机网络学习笔记(2)——Mac ping命令
计算机网络学习笔记(2)——Mac ping命令PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 [1] 。Ping是工作在[ TCP/IP](https://baike.baidu.com/item/ TCP%2FIP/214077)网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送[ ICMP](https://baike.baidu.com/item/ ICMP/572452)(Internet Control Message Pro
2020-10-24 15:33:08 3571
原创 计算机网络学习笔记(1)——ifconfig详解
ifconfig详解logif——software network interface 网络接口en0——以太网的相关配置p2p0——Point-to-Point 协议awdl0——airdrop peer to peer(一种mesh network),apple airdrop设备特有en1 en2许多windows用户熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。当然,Mac的Linux系统依然是拥有一个类似的工具,也就是ifconfig(interfaces conf
2020-10-16 11:41:03 3059
原创 Hadoop学习笔记(10)-Spqrk实现TopN(Python)
Spqrk实现TopN实验要求数据准备预期结果相关类以及算子介绍findsparkpyspark:SparkContext:parallelize(*c*, *numSlices=None*)collect()textFile(*name*, *minPartitions=None*, *use_unicode=True*)map(*f*, *preservesPartitioning=False*)cache()sortBy(keyfunc, *ascending=True*, *numPartition
2020-06-15 16:41:07 1272
原创 计算机系统基础学习笔记(7)-缓冲区溢出攻击实验
缓冲区溢出攻击实验实验介绍实验任务实验数据目标程序 bufbomb 说明ufbomb 程序接受下列命令行参数目标程序bufbomb中函数之间的调用关系缓冲区溢出理解目标程序调用的**getbuf**函数:过程调用的机器级表示test函数调用getbuf函数工具程序 hex2raw 说明攻击字符串示例辅助程序makecookie测试攻击字符串实验介绍此次实验的目的在于加深对 IA-32 过程调用规则和栈结构的具体理解。实验的主要内容是对一个可执行程序“bufbomb”实施一系列缓冲区溢出攻击(buffer
2020-06-03 21:34:44 9757 12
原创 Hadoop学习笔记(9)-Spark的jupyter notebook开发环境搭建
Spark的jupyter notebook开发环境搭建安装Pythonjupyter notebook介绍与安装jupyter notebook简介jupyter notebook的安装连接jupyter与spark安装Python更新软件包,以免有些安装包找不到。sudo apt-get update安装 python3,默认 python3 将安装最新版本,一般Ubuntu都自带python在 /usr/local目录下sudo apt-get install python3安装pyt
2020-06-02 16:05:18 1285
原创 Hadoop学习笔记(8)-Spark介绍以及环境搭建
Spark最初由美国加州伯克利大学(UC Berkeley)的AMP ( Algorithm, Machine and People)实验室于2009年开发, 是基于内存计算的大数据并行计算框架,可用于构建大型 的、低延迟的数据分析应用程序。2013年Spark加入Apache孵化器项目后发展迅猛,如今已 成为Apache软件基金会最重要的三大分布式计算系统开源 项目之一(Hadoop、Spark、Storm)
2020-05-28 17:17:54 830
原创 计算机系统基础学习笔记(4)-Cache友好代码
程序的性能指执行程序所用的时间,显然程序的性能与程序执行时访问指令和数据所用的时间有很大关系,而指令和数据的访问时间与相应的 Cache 命中率、命中时间和和缺失损失有关。对于给定的计算机系统而言,命中时间和缺失损失是确定的。因此,指令和数据的访存时间主要由 Cache 命中率决定,而 Cache 的命中率则主要由程序的空间局部性和时间局部性决定。Cache友好代码下面我们来介绍如何编写一段Cache友好代码,一段Cache友好代码往往运行速度较快。但我们需要注意以下两点:尽可能多的重复使用一个数据
2020-05-13 12:18:47 2805 6
原创 Hadoop学习笔记(5)-HBase常用Shell命令
status 查看系统状态hbase(main):001:0> status1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average loadTook 2.7304 secondsversion 查看版本号hbase(main):002:0> version2.2.0, rUnknown, Tue Jun 11 04:30:30 UTC 2019Took 0.0171 secondstable_h
2020-05-09 14:07:45 315
原创 Hadoop学习笔记(4)-Hbase的安装及其配置
Hbase的安装下载Hbase首先我们需要下载Hbase: 官方下载地址http://mirror.bit.edu.cn/apache/hbase/顺带附上Hbase官方文档 http://abloz.com/hbase/book.html安装配置我选择的是hbase-2.2.0-bin.tar.gz版本的,下载好之后移动到 /usr/local 目录解压。sudo tar -xzvf...
2020-05-09 12:37:24 411
原创 Hadoop学习笔记(3)-HDFS的Java编程方法
HDFS的Shell命令仅能实现本地的简单文件操作任务,如果小伙伴还没有了解基本的HDFS的Shell命令操作,可以参考小编写的这篇文章Hadoop学习笔记(2)-HDFS的基本操作(Shell命令),然而更高效的方法 是使用Java程序进行HDFS文件的访问,这篇文章就给大家介绍一下HDFS的Java编程方法。Ubuntu中下载安装Eclipse IDE的Java编程环境关于配置Java j...
2020-04-27 16:05:10 733
原创 计算机系统基础学习笔记(1)-基本GCC,objdump,GDB命令的使用
基本GCC命令的使用GCC是一套由GNU项目开发的编程语言编译器,可处理C语言、C++、Fortran、Pascal、Objective-C、Java等等。GCC通常是 跨平台软件的编译器首选。gcc是GCC套件中的编译驱动程序名。若计算机是x86-64位系统,为了编译成IA-32指令集,则请先运行下列命令:sudo apt-get install build-essential mod...
2020-04-22 08:52:13 1882
原创 计算机系统基础学习笔记(2)-数据的位运算操作
C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作。逻辑运算操作C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或。在编译时,编译器会根据操作数的宽度分别转换为不同的指令。操作C语言操作符汇编指令按位取反~notb、notw、notl按位与&andb、andw、andl按位或lorb、orw、orl按位异或^...
2020-04-21 23:35:51 1672
原创 Hadoop学习笔记(1)-Hadoop在Ubuntu的安装和使用
由于小编在本学期有一门课程需要学习hadoop,需要在ubuntu的linux系统下搭建Hadoop环境,在这个过程中遇到一些问题,写下这篇博客来记录这个过程,并把分享给大家。Hadoop的安装方式单机模式:Hadoop默认模式为非分布式模式(本地模式),无需 进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试伪分布式模式:Hadoop可以在单节点上以伪分布式的方式运行, H...
2020-04-20 13:21:53 1101
原创 Hadoop学习笔记(2)-HDFS的基本操作(Shell命令)
在这里我给大家继续分享一些关于HDFS分布式文件的经验哈,其中包括一些hdfs的基本的shell命令的操作,再加上hdfs java程序设计。在前面我已经写了关于如何去搭建hadoop这样一个大数据平台,还没搭好环境的童鞋可以转到我写的这篇文章Hadoop在Ubuntu的安装,接下来就开始我们本次的经验分享啦。HDFS的Shell命令操作HDFS的格式化与启动首次使用HDFS时,需要使用fo...
2020-04-20 13:12:37 1617 1
原创 关系代数
1 查询所有学生的选课情况,包含学号、姓名、性别、课程号、课程名;∏Sno,Sname,Ssex,Cno,Cname(S⋈Sc⋈C)\prod _{Sno,Sname,Ssex,Cno,Cname}(S⋈Sc⋈C)∏Sno,Sname,Ssex,Cno,Cname(S⋈Sc⋈C)2 查询所有课程的选修情况,包含课程号、课程名、学号、姓名、性别;∏Cno,Cname,Sno,Sname,Ss...
2020-03-29 19:32:43 8407
原创 C语言实现链式队列
链式队列,简称"链队列",即使用链表实现的队列存储结构。链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素,如下图所示: 所示为链式队列的初始状态,此时队列中没有存储任何数据元素,因此 top 和 rear 指针都同时指向头节点。 在创建链式队列时,强烈建议初学者创建一个带有头节点的链表,这样实现链式队列会更...
2020-03-01 19:21:12 956
原创 在MAC上如何使用SQL Server
由于小编在这学期要学习数据库原理这门课程,需要用到SQL Server,然而大家都知道SQL Server目前是只能在Windows上使用,我们在mac电脑上如何使用呢?我们可以借助目前比较火的Docker来完成,接下来就给大家介绍如何在docker上部署。Docker介绍Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发...
2020-02-23 10:38:14 5596 6
原创 队列的含义以及C语言实现顺序队列
队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。什么是队列与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如下图示:通常,称进数据的一端为 “队尾”,出数据的一端为 “队头”,数据元素进队列的过程称为 “入队”,出队列的过程称为 “出队”。不仅如此,队列中数据的进出要遵循 “先进先出” 的原则,即最先进队列的数据元素,同样要最先出队列...
2020-02-16 21:01:44 217
原创 C++语言实现链式栈
在之前写的C语言实现链式栈篇博文中,我已经给大家大概介绍了关于链式栈的意义以及相关操作,我会在下面给大家分享百度百科对链式栈的定义,以及给大家介绍利用C++实现链式栈的基本操作。百度百科链式栈链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。栈是只能在某一端插入...
2020-02-12 13:34:06 456
原创 C++实现双向循环链表
本次博文是关于利用C++模板的方式实现的双向循环链表以及双向循环链表的基本操作,在之前的博文C++语言实现双向链表中,已经给大家分析了双向循环链表的结构,并以图示的方式给大家解释了双向循环链表的基本操作。本篇文章利用C++实现了双向循环链表的基本操作,其中包括:双向循环链表实现的功能头部插入结点建立链表尾部插入结点建立链表实现指定位置插入结点查找给定数值是否存在...
2020-02-07 20:50:49 1615
原创 C++语言实现双向链表
这篇文章是关于利用C++模板的方式实现的双向链表以及双向链表的基本操作,在之前的博文C语言实现双向链表中,已经给大家分析了双向链表的结构,并以图示的方式给大家解释了双向链表的基本操作。本篇文章利用C++实现了双向链表的基本操作,其中包括:双向链表的基本操作C++语言实现头部插入结点建立链表尾部插入结点建立链表实现指定位置插入结点查找给定数值是否存在删除指定位置的结点修改指定位置的...
2020-02-03 17:24:48 1100
原创 C语言实现链栈以及基本操作
链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈底,如下下图所示:将链表头部作为栈顶的一端,可以避免在实现数据 “入栈” 和 “出栈” 操作时做大量遍历链表的耗时操作。链表的头部作为栈顶,意味着:在实现数据"入栈"操作时,需要将数据从链表的头部插入;在实现数据"出栈...
2020-02-01 19:54:12 2016
原创 C++语言实现顺序栈
C++语言实现顺序栈在写C语言实现顺序栈的时候,我已经向大家介绍了栈的特点以及介绍了栈的相关操作,并利用C语言实现了相关算法。在这里小编就不在继续给大家介绍了,需要温习的可以去我的博客看看。在这篇博客我就给大家分享一下利用C++模板类来实现顺序栈的相关操作,主要实现了以下功能:私有成员的封装根据顺序栈的特点,封装了elements这样的数组存放栈中元素,top代表栈顶指针,maxSize代...
2020-01-31 22:13:05 1277
原创 C语言实现双向循环链表
在之前的文章中,我写过一篇关于C语言实现双向链表博文,介绍了双向链表的实现过程以及双向链表的优势,接下来我首先给大家介绍一下循环链表和双向链表的区别,之后再给大家介绍双向循环链表的具体实现。循环链表和双向链表的区别1、最后一个结点指针指向不同在建立一个循环链表时,必须使其最后一个结点的指针指向表头结点,而不是像双向链表那样置为NULL。此种情况还用于在最后一个结点后插入一个新的结点。2、判...
2020-01-31 13:53:55 2451
原创 C语言实现双向链表
目前我们所学到的链表,无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表)。虽然使用单链表能 100% 解决逻辑关系为 “一对一” 数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中需要大量地找某指定结点的前趋结点,使用单链表无疑是灾难性的,因为单链表更适合 “从前往后” 找,而 ...
2020-01-16 22:04:34 805
原创 C语言实现链表(链式存储结构)
链表(链式存储结构)及创建链表,别名链式存储结构或单链表,用于存储逻辑关系为 “一对一” 的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。例如,使用链表存储 {1,2,3},数据的物理存储状态如下图所示:我们看到,上图 根本无法体现出各数据之间的逻辑关系。对此,链表的解决方案是,每个数据元素在存储时都配备一个指针,用于指向自己的...
2020-01-14 21:26:57 4175 5
原创 C++语言实现顺序表
C++语言实现顺序表顺序表的定义及其特点顺序表的定义是:把线性表中的所有表项按照其逻辑顺序依次存储到从计算机存储中指定存储位置开始的一块连续的存储空间中。 这样,线性表中第一个表项的存储位置就是被指定的存储位置,第i个表项(2≤\leq≤ i ≤\leq≤n)的存储位置紧接在第i一1个表项的存储位置的后面。假设顺序表中每个表项的数据类型为T,则每个表项所占用存储空间的大小(即字节数)大小相同,...
2020-01-14 19:37:49 948
原创 C语言实现顺序表(顺序存储结构)
顺序表(顺序存储结构)及初始化过程详解顺序表,全名顺序存储结构,是线性表的一种。通过《线性表》一节的学习我们知道,线性表用于存储逻辑关系为“一对一”的数据,顺序表自然也不例外。不仅如此,顺序表对数据的物理存储结构也有要求。 顺序表存储数据时,会提前申请一整块足够大小的物理空间,然后将数据依次存储起来,存储时做到数据元素之间不留一丝缝隙。例如,使用顺序表存储集合{1,2,3,4,5}数据最终的...
2020-01-13 16:48:04 5071 8
原创 史上最详细mac安装Qt教程
史上最详细mac安装Qt教程,小白看过来!这是一篇非常适合Qt入门小白的的安装Qt教程,因为这学期我们小组的一个关于高速救援的项目要用到Qt与web进行交互式展现相关的图像,由于没有MSVC这个插件,所以我只好选择重装Qt,这次没有第一次装那么困难,毕竟经历过一次,这次我以这篇博客记录下来,分享给大家!首先,进入QT官网...
2019-12-15 22:39:11 17533 11
原创 希尔排序
希尔排序(Shell sort)这个排序方法又称为缩小增量排序(diminishing increment Sort),是1959年由D.L.Shell提出来的。该方法的基本思想是:设待排序元素序列有n个元素,首先取一个整数gap<n作为间隔,将全部元素分为gap个子序列,所有距离为gap的例如取gap=[gap/21,重复上述的子序列划分和排序工作。直到最后取gap==1,将所有元素放在...
2019-11-15 16:55:05 263
原创 直接插入排序
title: 直接插入排序tags:数据结构C++JavaPython插入排序categories:数据结构C++JavaPython排序mathjax: true直接插入排序,插入排序(insert sort)的基本方法是:每步将一个待排序的元素,按其排序码大小,插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。{% note info ...
2019-11-13 22:56:24 152
原创 冒泡排序
title: 选择排序tags:数据结构C++JavaPythoncategories:数据结构C++JavaPythonabbrlink: 51203mathjax: true排序算法之冒泡排序,冒泡排序,冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,...
2019-11-13 10:18:06 267
原创 选择排序(C++,Java,Python实现)
排序算法之选择排序,选择排序,从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种操作,选择和交换,循环往复,最终得到一个有序序列。{% note info %}算法过程举个栗子(第一趟的排序过程)原始序列:3、44、38、5、47、15、36、 26、27、2、46、4、19、50、481)在进行选择排序过程中分成有序和无序两个部分,开始都是无序序列结...
2019-11-12 23:03:29 297
两种方法实现队列的相关操作
2019-10-10
实现栈的存储结构及相关操作
2019-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人