- 博客(14)
- 收藏
- 关注
原创 函数参数传递的三种方式
首先要明确一个概念:实参和形参在值传递过程中,被调函数的形式参数作为被调函数的局部变量在栈中分配内存空间,主调函数的实际参数的值被复制并存入该内存空间,形成实际参数的一个副本。形参和实参各占一个独立的存储空间。形参的存储空间是函数被调用时才分配的,调用开始,系统为形参开辟一个临时的存储区,然后将各实参传递给形参,这是形参就得到了实参的值。传值调用形参和局部变量一样,都是在被执行时,在栈中临时开辟一个存储空间,用来存储实参传过来的值,函数执行结束后,再释放掉,这也是为什么形参的改变不会影响实参的.
2020-08-07 04:10:09 1286
原创 Internet结构
§1.2Internet结构端系统通过接入ISP(access ISPs)连接到Internet接入ISP必须进一步互联,构成复杂的网络互联的网络。数以百万计的ISP是如何相互连接的呢?直接互联显然不可行,n个ISP直接互联变成O(n2n^2n2)连接问题。可以将每个接入ISP连接到一个国家或全球ISP上。多个ISP之间可以用对等链路(peering link)或IXP(互联网交换节点)实现大型的ISP之间的互联。个别接入ISP也可由区域ISP连接后再接入大型ISP。网络中心:少数互联的大型
2020-07-20 00:48:01 347
原创 计算机网络知识概要
计算机网络§1.1计算机网络基本概念计算机网络包括两点:通信技术计算机技术计算机网络可以定义成一个互联、自治的计算机集合。互联:计算机之间互联互通 (通过通信链路)自治:主机与主机之间无主从关系通过交换网络进行主机互联交换网络:也称为交换节点(一般指路由器和交换机)1.1.1什么是Internet在人们使用 Internet越来越多的今天,Internet已经渐渐变成了计算机网络的代名词。ISP(Internet Service Provide)是网络互联的"网络之网络
2020-07-19 20:04:34 630
原创 Dijkstra双栈对表达式进行求值算法
请大家先对一个算数表达式进行计算:(1+((2+3)(45)))如果将4乘以5,把3加上2,取它们的乘积然后加1,就得到了结果101。但Java是如何完成运算的呢?我们首先来明确一下递归定义:算数表达式可能是一个数,或者由一个左括号、一个算数表达式、一个运算符、另一个算术表达式和一个右括号组成的。可能你更习惯于省略括号的形如5+3*4此类运用优先级规则的表达式。当然如果学过简单机制也可以很好的处理优先级规则,但在这里不多做讨论。重点在于如何解析由括号、运算符、数字组成的字符串,并按照正确的顺序
2020-07-19 01:35:20 257
原创 逆波兰式的转化与计算(中缀转后缀计算)
逆波兰式的转化与计算波兰式与逆波兰式波兰式即为我们日常使用的式子,也称为中缀表达式,像是平时的1+1而逆波兰式又名后缀表达式,后缀表达式比中缀表达式计算起来更方便简单些,中缀表达式要计算就存在着括号的匹配问题,所以在计算表达式值时一般都是先转换成后缀表达式,再用后缀法计算表达式的值如果E是一个变量或常量,则E的后缀式是E本身。 如果E是E1 op E2形式的表达式,这里op是任何二元操作...
2020-04-22 13:58:08 787
原创 队列的认知和理解
队列的认知和理解队列(Queue)队列简称队,它也是一种运算受限的线性表。队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。与堆栈不同,如果说堆栈是几个人进入死胡同,后进的人先出,那么队列更像是几个人排队看电影,先排队的先进场去看。1.队列的几个概念把进行插入的一端称做队尾...
2020-03-25 19:20:39 687
原创 栈的认识
栈的认识和理解栈(stack)栈是一种只能在一端进行插入或删除操作的线性表。栈只能选取同一个端点进行插入和删除操作栈的主要特点是“后进先出(LIFO)”,即后进栈的元素先出栈。栈也称为后进先出表。1.栈的几个基本概念允许进行插入、删除操作的一端称为栈顶。表的另一端称为栈底。当栈中没有数据元素时,称为空栈。栈的插入操作通常称为进栈或入栈。栈的删除操作通常称为退栈或出栈。2...
2020-03-25 15:26:38 1787
原创 十大排序之桶排序(C语言实现)
基础十大排序(7)———桶排序(c语言版本)桶排序(Bucket sort)桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序...
2020-02-09 20:28:36 5694 4
原创 十大排序之归并排序(C语言实现)
基础十大排序(6)———归并排序(c语言版本)从前面已经讲解了冒泡排序、选择排序、插入排序,快速排序了,本章主要讲解的是归并排序,希望大家看完能够理解并手写出归并排序快速排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出。归并排序(MERGE-SORT)来源百度百科:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divi...
2020-02-09 20:19:22 315
原创 十大排序之快排(C语言实现)
基础十大排序(5)———快速排序(c语言版本)快速排序(Quick Sort)快速排序是分治法的典型代表算法。又被称为折半法排序,是对冒泡排序的一种改进。并且运用了递归思想。什么是快速排序快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成...
2020-02-09 19:31:28 717
原创 十大排序之希尔排序(C语言实现)
基础十大排序(3)———希尔排序(c语言版本)希尔排序(Shell’s Sort)来源百度百科:希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing IncrementSort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。从上面我们很容易看出来,它是插入排序的高级版...
2020-02-09 18:52:11 1973
原创 十大排序之插入(C语言实现)
基础十大排序(3)———插入排序(c语言版本)插入排序(Insertion Sort)插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。什么是插入排序插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n2n^2n2)...
2020-02-09 17:26:42 416
原创 十大排序之选择(C语言实现)
基础十大排序(2)———选择排序(c语言版本)选择排序(Selection Sort)选择排序也是一种基础的简单直观的排序算法,可以说是对冒泡排序法的一种改进。什么是选择排序选择排序是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部排序的元素排完。算法描述(正序)• 从待排序序列中,找到最小的元素。• 如果最小元素不是待排序序列的第一个元素...
2020-02-01 16:35:33 3787 2
原创 十大排序之冒泡(C语言实现)
基础十大排序(1)———冒泡排序(c语言版本)冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它适合较少数据的排序运算,效率较低,但是是每个编程学习者入门必须掌握的算法。什么是冒泡排序冒泡排序是一种交换排序,它的基本思想是将相邻的两个数据进行比较,如果反序则进行交换,直到没有反序记录时结束这个数,再到下一个数,直到所有数据排好顺序。因一个个浮出故称之为冒泡排序。双重循环...
2020-01-30 15:56:03 335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人