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

最近更新

2025年看别人军训的心得体会(推荐15篇) 64页

2025年小学六年级下学期数学教师工作总结 6页

低碳生活实践调查报告范文三 6页

2025年小学体育教学工作总结汇编篇 33页

2025年盼望春节作文六年级(共13篇) 15页

2025年相遇想象作文(精选19篇) 33页

因特网及其应用 62页

2025年相信我自己作文250字(合集18篇) 24页

2025年新目标七年级下册英语单词表新版含音标.. 15页

2025年盗墓笔记读书笔记600字(推荐12篇) 18页

从帕玛拉特案件看注册会计师在准则遵循上的缺.. 4页

人工智能在航空业中的发展现状与未来趋势分析.. 4页

2025年对班主任的工作计划合集7篇 17页

2025年盆栽玫瑰花的养殖方法介绍(精选18篇).. 44页

2025年宿舍管理工作总结(精选篇) 25页

商场收银员岗位培训 25页

2025年的春天征文(精选12篇) 10页

互动影视的实现途径及传播价值分析——以芒果.. 11页

二维材料在能源存储中的应用与探索 5页

2025年百货商场,购物广场中秋节促销活动方案.. 6页

2025年百日誓师班会主持词开场白(共14篇) 36页

全新个人把车租给公司租车协议 4页

最新部编版六年级道德与法治下册课程纲要 4页

射频消融术后护理常规 8页

舞蹈编导基本知识 4页

《园林绿化工程施工及验收规范》(CJJ82-2023).. 29页

高考化学元素推断题大题 3页

某建筑公司钻机施工 6页

基药叶酸片原研处方工艺分析 3页

八 年 级 物 理 试 题 9页