- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. 链表与数组。
2. 队列和栈,出栈与入栈。
3. 链表的删除、插入、反向。
(1)反向
链表的定义:
class Node{
public int val;
public Node next;
public Node(int val){this.val=val;}
}
反向分为4步:
两个临时变量:当前节点curr和前一个节点prev
第一步:保存当前节点的下一个节点到tmp中;
第二步;将当前节点的下一个指向前一个;
第三步;将前一个prev指向指向当前节点curr;
第四步:将当前节点curr指向tmp,也就是实际上的下一个节点
public static Node reversal(Node head){
Node prev=null;
Node curr=head;
while(curr!=null){
Node tmp=curr.next;
curr.next=prev;
prev=curr;
curr=temp;
}
return prev;
}
4. 字符串操作。
5. Hash表的hash函数,冲突解决方法有哪些。
答案:Hash
哈希表(Hash Table,也叫散列表),是根据关键码值 (Key-Value) 而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。哈希表的实现主要需要解决两个问题,哈希函数和冲突解决。
哈希函数
哈希函数也叫散列函数,它对不同的输出值得到一个固定长度的消息摘要。理想的哈希函数对于不同的输入应该产生不同的结构,同时散列结果应当具有同一性(输出值尽量均匀)和雪崩效应(微小的输入值变化使得输出值发生巨大的变化)。
冲突解决
开放地址法:以发生冲突的哈希地址为输入,通过某种哈希冲突函数得到一个新的空闲的哈希地址的方法。有以下几种方式:
线性探查法:从发生冲突的地址开始,依次探查下一个地址,直到找到一个空闲单元。
平方探查法:设冲突地址为d0,则探查序列为:d0+1^2,d0-1^2,d0+2^2...
拉链法:把所有的同义词用单链表链接起来。在这种方法下,哈希表每个单元中存放的不再是元素本身,而是相应同义词单链表的头指针。HashMap就是使用这种方法解决冲突的。
6. 各种排序:冒泡、选择、插入、希尔、归并、快排、堆排、桶排、基数的原理、平均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。
(1)常见排序算法
稳定排序:
冒泡排序?— O(n2)
插入排序?— O(n2)
桶排序?— O(n); 需要 O(k) 额外空间
归并排序?— O(nlogn); 需要 O(n) 额外空间
二叉排序树排序?— O(n log n) 期望时间; O(n2)最坏时间; 需要 O(n) 额外空间
基数排序?— O(n·k); 需要 O(n) 额外空间
不稳定排序
选择排序?— O(n2)
希尔排序?— O(nlogn)
堆排序?— O(nlogn)
快速排序?— O(nlogn) 期望时间, O(n2) 最坏情况; 对于大的、乱数串行一般相信是最快的已知排序
7. 快排的partition函数与归并的Merge函数。
8. 对冒泡与快排的改进。
(1)对快排的改进
当待排序序列的长度分割到一定大小后,使用插入排序。
从左、中、右三个数中取中间值。
9. 二分查找,与变种二分查找。
1 二分查找
二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。
(图片来自《算法-第4版》)
/**
* 二分查找,找到该值在数组中的下标,否则为-1
*/
static int binarySerach(int[] array, int key) {
int left = 0;
int right = array.length - 1;
// 这里必须是 =
while (left = right) {
int mid = (left + right) / 2;
if (array[mid] == key) {
return mid;
}
else if (array[mid] key) {
left = mid + 1;
}
您可能关注的文档
- 01-SuperMap iClient for Leaflet数据聚合展示.pptx
- 01-WebGL三维客户端开发包简介.pptx
- 1市场分析及前期准备要求及细节.ppt
- 02-快速创建三维Web应用程序.pptx
- 03-SuperMap GIS 9D(2019)产品白皮书_V2018Q4R1说明.pdf
- 03-SuperMap iClient for Leaflet专题图表达说明.pptx
- 04-SuperMap大数据GIS技术白皮书_v2.2.pdf
- 5G技术培训1.本地License 安装.docx
- 5G技术培训5G UC package-4课件.pdf
- 5G技术培训5G_AAS6488_withCWDM_S111Site_20190328说明.pptx
最近下载
- 舌下神经颈袢联合移植治疗重度面神经麻痹专家共识解读PPT课件.pptx VIP
- 13新能源项目区域集控系统设计标准方案.docx VIP
- 气田2022年产能建设项目环境影响报告书.pdf
- 《土地管理学总论》(第2版).ppt
- 2023年福州外语外贸学院公共课《马克思主义基本原理概论》期末试卷B(有答案).docx VIP
- 固体理论(固体能带理论).ppt VIP
- 第三章 1 波的形成.pptx VIP
- Q HJL 001-2016_HG-U1000高精密数控内外圆磨床.pdf VIP
- GB50210-2018建筑装饰装修工程质量验收标准.docx VIP
- 杭州市工程地质层的划分及工程地质特性.pdf VIP
原创力文档


文档评论(0)