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) { /

最近更新

关于蒸汽透平在热能综合利用中几个问题的讨论.. 2页

“孝老爱亲”中华传统美德的育人意蕴及实践策.. 8页

关于编制环境质量评价图的探讨 2页

关于社会主义再生产问题的讨论及值得探讨的若.. 2页

《证券营销话术技巧》 45页

关于电炉冶炼工艺改革中几个问题的探讨 2页

关于生产队领导方法和经营管理若干问题的调查.. 2页

关于柴油机谐波函数供油凸轮的研究 2页

2025年股骨粗隆间骨折术后康复护理精华讲义 45页

关于改进“公路养护质量综合值”计算方法的一.. 2页

人教版语文下册四年级《小英雄雨来》 71页

关于我国事业单位财政支出绩效评价的思考 2页

2025年物位仪表项目发展计划 66页

人教版新课标语文九下《课外古诗词背诵》教学.. 76页

2025年渗透剂项目合作计划书 48页

2025年皮革色浆合作协议书 53页

关于建设科学工业园区若干问题初探 2页

2025年电压力煲项目建议书 68页

2025年糖尿病肾病患者降糖降脂降压药物精选指.. 21页

2025年糖尿病相关心理疾病诊疗策略 33页

关于如何做好新形势下农村货币流通工作的探讨.. 2页

关于多滚筒传动对降低胶带张力的讨论 2页

关于城市地质工作若干问题的探讨 2页

小学科学教科版五年级下册第二单元《船的研究.. 4页

比例的意义公开课省公开课金奖全国赛课一等奖.. 19页

建筑桩基技术规范 4页

爱华仕箱包营销推广方案 33页

食品企业生产管理培训课件 38页

零售药店各岗位职责及操作规程 9页

工程建设单位履行扬尘污染防治职责承诺书 2页