文章目录
1.什么是时间复杂度?
时间复杂度是计算机科学中用来描述算法执行时间效率的一个概念。它表示了算法执行时间与输入数据量之间的关系,通常用大O符号(Big O notation)来表示。
2.时间复杂度类别
复杂度排序:
O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(2n) < O(n!)
2.1 常量阶 O(1)
public class ArrayAccessExample {
public static void main(String[] args) {
int[] array = {
1, 2, 3, 4, 5};
// 访问数组的第一个元素,时间复杂度为 O(1)
System.out.println(array[0]);
}
}
代码不会因为n输入的多少时间发生改变,只执行一次。故为O(1)。
2.2 对数阶 O(log n)
public class SimpleBinarySearchExample {
public static void main(String[] args) {
// 一个已排序的数组
int[] sortedArray = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 5;
boolean found = binarySearch(sortedArray, target);
if (found) {
System.out.println("Element found in the array.");
} else {
System.out.println("Element not fou