面试题(2)

  1. 链表与数组的区别:
    1)数组是线性结构,可以直接索引,即要去第i个元素,a[i]即可。链表也是线性结构,要取第i个元素,只需用指针往后遍历i次就可。而且效率低些。
    2)数组是静态分配内存,而链表是动态分配内存
    3)数组在内存中连续,链表不连续;
    4)数组元素在栈区,链表元素在堆区;
    5)数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);
    6)数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。
  2. OSI的七层模型和TCP/IP的五层模型
    在这里插入图片描述
    在这里插入图片描述

<1>应用层
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
<2>表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。(不同国家的通信转换)
<3>会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
<4>传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
<5>网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
<6>数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。 在实际使用中,LLC子层并非必需的。
<7> 物理层
实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。

  1. 快排的实现
internal static void QuickSort(int[] inputArray, int lowIndex, int highIndex)        
{            
	if (lowIndex >= highIndex)            
	{                
		return;            
	}            
	int middleIndex = SortFunction(inputArray, lowIndex, highIndex);            
	QuickSort(inputArray, lowIndex, middleIndex);
	QuickSort(inputArray, middleIndex + 1, highIndex);        
}         
private static int SortFunction(int[] inputArray, int lowIndex, int highIndex)        
{            
	int minValue = inputArray[lowIndex];            
	for (; highIndex > lowIndex; highIndex--)            
	{                
		if (inputArray[highIndex] <= minValue)                
		{                    
			inputArray[lowIndex] = inputArray[highIndex];
			for (; lowIndex < highIndex; lowIndex++)                    
			{                        
				if (inputArray[lowIndex] >= minValue)                        	
				{
					inputArray[highIndex] = inputArray[lowIndex];                            
					break;                        
				}                    
			}                
		}            
	}            
	inputArray[lowIndex] = minValue;            
	return lowIndex;        
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值