咱们在数学中,有一套残缺的公式把想要解决的题目计算出来。在 java 中的算法又有一些区别,须要定义整个过程,而后输出数值进行运行。对于算法这部分的面试题,本篇把它分为根底知识点和实例考查局部,大家做完基础理论题目后,能够就实际代码的题目运行进行操作。
一、根底知识点
1. 简略解释算法是什么
算法是一个定义良好的计算过程,它将一些值作为输出并产生相应的输入值。简略来说,它是将输出转换为输入的一系列计算步骤。
2. 解释什么是疾速排序算法
疾速排序算法可能疾速排序列表或查问。它基于宰割替换排序的准则,这种类型的算法占用空间较小,它将待排序列表分为三个次要局部:
小于 Pivot 的元素
枢轴元素 Pivot(选定的比拟值)
大于 Pivot 的元素
3. 解释什么是“哈希算法”,它们用于什么
“哈希算法”是一个哈希函数,它应用任意长度的字符串,并将其缩小为惟一的固定长度字符串。它用于明码有效性、音讯和数据完整性以及许多其余加密零碎。
4. 解释加密算法的工作原理
加密是将明文转换为称为“密文”的明码格局的过程。要转换文本,算法应用一系列被称为“键”的位来进行计算。密钥越大,创立密文的潜在模式数越多。大多数加密算法应用长度约为 64 到 128 位的固定输出块,而有些则应用流办法。
二、实例考查
1. 是斐波那契数列代码实现
public class Lesson7_4 {public static void main(String[] args) {
// 斐波那契数列
int fibonacciIndex = 7;
int fibonacciResult = fibonacci(fibonacciIndex);
System.out.println("下标 ( 从 0 开始)" + fibonacciIndex + "的值为:" + fibonacciResult);
}
/**
* 斐波那契数列
* @param index 斐波那契数列的下标(从 0 开始)* @return int
*/
private static int fibonacci(int index) {if (index == 0 || index == 1) {return index;} else {return fibonacci(index - 1) + fibonacci(index - 2);
}
}
}
2. 编写一个 Java 程序,用 if-else 语句判断某年份是否为平年。
public class LeapYear{public static void main(String args[]){
int year=2010;
if(args.length!=0)
year=Integer.parseInt(args[0]);
if((year%4==0 &&year%100!=0)||(year%400==0))
System.out.println(year+"年是平年。");
else
System.out.println(year+"年不是平年。");
}
}
以上就是对于 java 算法面试题的分享,对于这部分的面试,既有实践知识点的考查,还是波及到程序的运行操作,大家在筹备面试题目标时候,须要兼顾这两个方面。