1 / 22
文档名称:

面试时的java数据结构与算法word版.doc

格式:doc   大小:640KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面试时的java数据结构与算法word版.doc

上传人:精品小课件 2021/7/3 文件大小:640 KB

下载得到文件列表

面试时的java数据结构与算法word版.doc

相关文档

文档介绍

文档介绍:面试时的Java数据结构与算法
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。
面试官对于这些排序可能会要求比较各自的优劣、各种算法的思想及其使用场景。还有要会分析算法的时间和空间复杂度。通常查找和排序算法的考察是面试的开始,如果这些问题回答不好,估计面试官都没有继续面试下去的兴趣都没了。所以想开个好头就要把常见的排序算法思想及其特点要熟练掌握,有必要时要熟练写出代码。
接下来我们就分析一下常见的排序算法及其使用场景。限于篇幅,某些算法的详细演示和图示请自行寻找详细的参考。
冒泡排序
冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。举个栗子,对5,3,8,6,4这个无序序列进行冒泡排序。首先从后向前冒泡,4和6比较,把4交换到前面,序列变成5,3,8,4,6。同理4和8交换,变成5,3,4,8,6,3和4无需交换。5和3交换,变成3,5,4,8,6,,把最小的数3排到最前面了。对剩下的序列依次冒泡就会得到一个有序序列。冒泡排序的时间复杂度为O(n^2)。
实现代码:
/**
****@Description:冒泡排序算法实现
****@author 王旭
*/
public class BubbleSort {
public static void bubbleSort(int[] arr) {
if(arr == null || == 0)
return ;
for(int i=0; i) {
for(int j=-1; j>i; j--) {
if(arr[j] ]) {
swap(arr, j-1, j);
}
}
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
选择排序
选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。举个栗子,对5,3,8,6,4这个无序序列进行简单选择排序,首先要选择5以外的最小数来和5交换,也就是选择3和5交换,一次排序后就变成了3,5,8,6,,最终就会得到一个有序序列。其实选择排序可以看成冒泡排序的优化,因为其目的相同,只是选择排序只有在确定了最小数的前提下才进行交换,大大减少了交换的次数。选择排序的时间复杂度为O(n^2)。
实现代码:
/**
****@Description:简单选择排序算法的实现
****@author 王旭
*/
public class SelectSort {
public static void selectSort(int[] arr) {
if(arr == null || == 0)
return ;
int minIndex = 0;
for(int i=0; i//只需要比较n-1次
minIndex = i;
for(int j=i+1; j//从i+1开始比较,因为minIndex默认为i了,i就没必要比了。
if(arr[j] arr[minIndex]) {
minIndex = j;
}
}
if(minIndex != i) { /

最近更新

车身磷化膜异常原因分析及措施探讨 3页

超声波法提取蒲公英中绿原酸的工艺优化研究 3页

财政支出绩效评价质量控制模型的构建及应用 3页

触电急救(课件) 21页

规范少先队礼仪 65页

西安地铁三号线高架段景观设计研究 3页

菱塘养鱼技术研究 3页

2025年度个人用工合同:文化产业发展项目创意.. 9页

自动转换开关电器(ATSE)的工程应用 3页

血栓闭塞性脉管炎 27页

美国NREL与通用汽车合作研发车用燃料电池技术.. 3页

综采工作面支架初撑力与围岩相互作用关系分析.. 3页

线粒体丙酮酸转运载体(MPC)研究进展 3页

精氮机加热器电路改造技术研究 3页

第十七届全国表面保护技术交流会将在嘉兴召开.. 3页

福建漳州地域文化元素在漳州旅游景区导视系统.. 3页

石油化工管道焊接工艺与质量控制措施分析 3页

2025年龙年网络科技公司大展宏图好名600个 8页

2025年龙年制造四个字公司高贵好名00个 11页

2025年黄金和债券哪个收益高 5页

2025年鲁姓女孩名字清雅唯美 10页

2025年高考英语常考必备知识点 6页

2025年属龙什么颜色旺 5页

2025年高考数学数列知识点数列易混淆知识点 6页

2025年高考志愿填报指南以及误区 5页

2025年属蛇缺金秦姓女宝宝惊艳名字 7页

2025年高考化学的复习要点 6页

2025年属虎人2025年整体运势 3页

2025年高考作文发言稿800字 25页

2025年属兔缺土吕姓男宝宝惊艳名字 7页