当前位置: 首页 > wzjs >正文

腾讯云建网站北京手机网站开发

腾讯云建网站,北京手机网站开发,编程软件免费下载,司法公开网站建设情况汇报一、时间复杂度 时间复杂度(Time Complexity)表示算法运行时间随输入规模增长的变化趋势。通常用大 O 表示法(Big O Notation)来描述。 常见时间复杂度 复杂度名称例子O(1)常数时间复杂度访问数组中的某个元素。O(log n)对数时间复…

一、时间复杂度


时间复杂度(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,存个档

http://www.dtcms.com/wzjs/783923.html

相关文章:

  • 协会网站建设哪里实惠大学生建设网站
  • 保定徐水网站建设网站移动端流量
  • 怎么建一个网站卖东西菲律宾菠菜网站建设
  • 健身网站开发开题报告linux做商务网站
  • 惠州网站建设创业石家庄招标网官方网站
  • asp.net 网站开发 ppt雄安专业网站建设
  • 网站设计论文答辩个人博客首页
  • wordpress站国外优秀vi设计网站
  • 周口网站建设73data深圳进入广州最新规定
  • 网站业务建设是什么意思永州做网站tuantaogou
  • 湖南建设监理员报名网站少儿编程培训哪个机构好
  • 怎么做静态网站濮阳网站建设通图片
  • 设计型网站自带优化广州网站设计报价
  • 做网站策划用什么软件小程序搭建挣钱
  • tv网站建设网站配色技巧
  • 网站搭建服务器公司网站上线
  • 网站开发模块化网站被host重定向
  • it初学者做网站响应式网站图解
  • 青山网站建设网页设计与制作软件
  • 做自媒体要知道的网站怎么在自己的电脑做网站
  • 网站分析培训班在手机上怎么注册公司
  • 效果好网站建设哪家便宜godaddy wordpress 备
  • 沈阳市网站设计制作公司易推广
  • 网站首次打开速度慢wordpress网站点击量与排名
  • 秦皇岛和平大街网站建设小版本wordpress
  • 哪里有做网站服务网站推广优化如何做
  • 网站ip段屏蔽白银市建设局网站首页
  • wordpress企业站主题免费网站备案信息变更
  • 上海松江网站建设公司html5动画效果代码
  • 如何做网站的源码网站要怎么做关键词