当前位置: 首页> 科技> IT业 > 网站推广的目的有哪些_渭南市建网站_google搜索引擎优化_怎样上百度做广告

网站推广的目的有哪些_渭南市建网站_google搜索引擎优化_怎样上百度做广告

时间:2025/9/7 14:25:43来源:https://blog.csdn.net/yuysjx/article/details/146118796 浏览次数:3次
网站推广的目的有哪些_渭南市建网站_google搜索引擎优化_怎样上百度做广告

一、时间复杂度


时间复杂度(Time Complexity)表示算法运行时间随输入规模增长的变化趋势。通常用大 O 表示法(Big O Notation)来描述。

常见时间复杂度
复杂度名称例子
O(1)常数时间复杂度访问数组中的某个元素。
O(log n)对数时间复杂度二分查找。
O(n)线性时间复杂度遍历数组或链表。(一重循环)     
O(n log n)线性对数时间复杂度快速排序、归并排序。  
O(n²)平方时间复杂度冒泡排序、选择排序(双重循环
O(2ⁿ)指数时间复杂度递归求解斐波那契数列(未优化)。
O(n!)阶乘时间复杂度旅行商问题(穷举所有排列)。

 例子

1. O(1):常数时间复杂度

int getFirstElement(int[] arr) {return arr[0]; // 无论数组多大,只需一次操作
}

2. O(n):线性时间复杂度

void printArray(int[] arr) {for (int i = 0; i < arr.length; i++) { // 遍历数组,操作次数与数组长度成正比System.out.println(arr[i]);}
}

3. O(n²):平方时间复杂度

void bubbleSort(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - 1; j++) { // 双重循环,操作次数与数组长度的平方成正比if (arr[j] > arr[j + 1]) {swap(arr, j, j + 1);}}}
}

4. O(log n):对数时间复杂度

int binarySearch(int[] arr, int target) {int left = 0, right = arr.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (arr[mid] == target) return mid;if (arr[mid] < target) left = mid + 1;else right = mid - 1;}return -1;
}

二、空间复杂度


空间复杂度(Space Complexity)表示算法运行过程中所需的额外存储空间随输入规模增长的变化趋势。通常也用大 O 表示法描述。

常见空间复杂度
复杂度名称例子
O(1)常数空间复杂度只使用固定数量的变量。
O(n)线性空间复杂度使用一个与输入规模成正比的数组或列表。  
O(n²)平方空间复杂度使用一个二维数组(如邻接矩阵)。  

例子

1. O(1):常数空间复杂度

int sum(int a, int b) {return a + b; // 只使用了固定数量的变量(a 和 b)
}


2. O(n):线性空间复杂度

int[] copyArray(int[] arr) {int[] newArr = new int[arr.length]; // 创建了一个与输入数组大小相同的新数组for (int i = 0; i < arr.length; i++) {newArr[i] = arr[i];}return newArr;
}

3. O(n²):平方空间复杂度

int[][] createMatrix(int n) {int[][] matrix = new int[n][n]; // 创建了一个 n x n 的二维数组for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {matrix[i][j] = i + j;}}return matrix;
}

三. 如何分析时间复杂度和空间复杂度

时间复杂度分析


1. 找出基本操作:通常是循环、递归、条件判断等。
2. 计算基本操作的执行次数:通常与输入规模(如数组长度 `n`)有关。
3. 用大 O 表示法表示:忽略常数项和低阶项。

void printPairs(int[] arr) {for (int i = 0; i < arr.length; i++) { // O(n)for (int j = 0; j < arr.length; j++) { // O(n)System.out.println(arr[i] + ", " + arr[j]); // O(1)}}
}

总时间复杂度:`O(n) * O(n) * O(1) = O(n²)`。

空间复杂度分析


1. 找出额外存储空间:通常是变量、数组、递归栈等。
2. 计算存储空间的大小:通常与输入规模(如数组长度 `n`)有关。
3. 用大 O 表示法表示:忽略常数项和低阶项。

例子

int[] reverseArray(int[] arr) {int[] result = new int[arr.length]; // O(n)for (int i = 0; i < arr.length; i++) {result[i] = arr[arr.length - 1 - i];}return result;
}


总空间复杂度:`O(n)`(用于存储 `result` 数组)。

4. 总结

时间复杂度:衡量算法运行时间随输入规模增长的变化趋势。
空间复杂度:衡量算法运行过程中所需的额外存储空间随输入规模增长的变化趋势。
大 O 表示法:忽略常数项和低阶项,关注增长趋势。

谢谢deepseek,存个档

关键字:网站推广的目的有哪些_渭南市建网站_google搜索引擎优化_怎样上百度做广告

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: