做数据可视化图的网站工装公司是做什么的

张小明 2026/3/12 3:47:07
做数据可视化图的网站,工装公司是做什么的,如何做营销推广,开网络公司需要多少资金一、什么是时间复杂度和空间复杂度#xff1f;——用5段代码讲明白在算法世界里#xff0c;我们不只关心“能不能跑通”#xff0c;更关心“跑得快不快”、“占不占地方”。这就是时间复杂度和空间复杂度要解决的问题。时间复杂度#xff1a;衡量“执行步骤”的增长趋势不是…一、什么是时间复杂度和空间复杂度——用5段代码讲明白在算法世界里我们不只关心“能不能跑通”更关心“跑得快不快”、“占不占地方”。这就是时间复杂度和空间复杂度要解决的问题。时间复杂度衡量“执行步骤”的增长趋势不是看实际运行几毫秒而是看随着输入数据变大操作次数怎么变。我们用大O表示法Big O来描述这个“趋势”。来看几个经典例子例1线性遍历 →O(n)来自1.js// T(n) 3n3 function traverse(arr) { var len arr.length; // 1次 for (let i 0; i len; i) { // 循环 n 次 console.log(arr[i]); // 每次循环1次 } } // T(n) 1 1 n 1 n n 3n3 → 忽略常数和低阶项 → O(n)解释数组越长打印次数越多成正比关系。就像你数100个人的名字肯定比数10个人花10倍时间。例2双重循环 →O(n²)来自2.jsfunction traverse(arr) { var outlen arr.length; for (var i 0; i outlen; i) { var inlen arr[i].length; for (var j 0; j inlen; j) { console.log(arr[i][j]); } } } // T(n) ≈ 4n² ... → O(n²)解释比如一个 n×n 的表格你要把每个格子都点一遍总共点 n² 次。数据量翻倍操作次数变成4倍很可怕。例3指数级跳跃 →O(log n)来自3.jsfor (var i 1; i len; i i * 2) { console.log(arr[i]); } // T(n) 2logn 4 → O(log n)解释i 每次翻倍1→2→4→8...所以循环次数是 log₂(len)。比如 len1024只循环10次这是非常高效的节奏像二分查找。例4额外开数组 →O(n)空间来自4.jsfunction init(n) { var arr []; // 新开辟空间 for (var i 0; i n; i) { arr[i] i; } return arr; } // S(n) O(n)空间复杂度衡量额外内存占用。这里新建了一个长度为 n 的数组所以空间是 O(n)。例5原地操作 →O(1)空间还是1.js// S(1) 因为只有一个arr其他作为参数没有额外的内存开销没有 new 数组、没递归、没哈希表只是用几个变量i, len所以空间是常数级O(1) —— 最省✅总结一句话时间复杂度看“操作次数”随输入规模怎么涨。空间复杂度看“额外内存”用了多少。我们追求时间快 空间省二、实战力扣88题《合并两个有序数组》——三指针 原地合并题目要求nums1长度为m n前m个是有用数字后n个是 0预留空间nums2长度为n把nums2合并进nums1最终nums1变成一个有序数组不能返回新数组必须原地修改 nums1错误思路从前向后合并很多人第一反应用两个指针从前往后比小的放前面。但问题来了nums1 后面有空位前面却有数据如果你把小的数往前面插会覆盖掉还没处理的 nums1 元素比如nums1 [1,2,3,0,0,0], m3 nums2 [2,5,6], n3如果从前往后第一步把 1 放好没问题但第二步要把 2来自 nums2放进去时nums1[1] 原本是 2会被覆盖而那个 2 还没被处理所以不能从前向后正确思路从后往前 三指针利用 nums1尾部有空位的特点从最大的数开始填就不会覆盖未处理的数据来看代码一字不变function merge(nums1, m, nums2, n) { // 数组是连续的存储空间所以可以从后往前合并 let i m - 1; // i 是 nums1 里面“有用数字”的最后一位的位置从0开始数 let j n - 1; // j 是 nums2 里面“有用数字”的最后一位的位置 let k m n - 1; // k 是 nums1 整个数组最后一位的位置因为nums1已经预留了足够空间 // 数组是有序的 while(i 0 j 0) { // 只要 nums1 和 nums2 都还有数字没比完就继续比 if (nums1[i] nums2[j]) { // 如果 nums1 当前的数字比 nums2 的大 nums1[k] nums1[i]; // 就把大的那个放到 nums1 的最后面k的位置 i--; // 然后 nums1 的指针往前面走一步看下一个数字 } else { // 否则nums2 的数字更大或一样大 nums1[k] nums2[j]; // 把 nums2 的这个数字放到 nums1 的最后面 j--; // 然后 nums2 的指针往前面走一步 } k--; // 不管放了谁最后面的位置都要往前挪一格准备放下一个 } while(j 0) { // 如果 nums2 还剩下一些小数字没放完nums1已经放完了 nums1[k] nums2[j]; // 就把这些剩下的小数字一个个放到 nums1 前面空着的位置 j--; // 每放一个nums2 的指针往前走 k--; // 放的位置也往前走 } }图解三指针工作过程初始状态nums1 [1, 2, 3, 0, 0, 0] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 1: 比较 nums1[i]3 和 nums2[j]6 → 6 更大 → 放到 k 位置nums1 [1, 2, 3, 0, 0, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 2: 比较 3 vs 5 → 5 更大nums1 [1, 2, 3, 0, 5, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 3: 比较 3 vs 2 → 3 更大nums1 [1, 2, 3, 3, 5, 6] ↑ ↑ ↑ i | k | nums2 [2, 5, 6] ↑ jStep 4: 比较 2 vs 2 → 相等放 nums2 的或 nums1 的也行nums1 [1, 2, 2, 3, 5, 6] ↑ ↑↑ i k nums2 [2, 5, 6] (j-1结束)此时j 0说明 nums2 已全部放入。而 nums1 剩下的 [1,2] 本来就在正确位置不用动 注意如果 nums1 先耗尽i0但 nums2 还有剩就需要第二个 while 循环把剩下的 nums2 元素补到前面。复杂度分析时间复杂度O(m n)每个元素最多被访问一次总共 mn 个元素。空间复杂度O(1)只用了 i, j, k 三个变量没有额外数组完美符合“原地合并”要求。为什么这个方法聪明利用了“有序”特性最大值一定在两个数组的末尾。利用了“预留空间”从后往前写不会踩到自己的脚。三指针分工明确i负责 nums1 的有效数据j负责 nums2 的所有数据k负责写入位置三、结语算法之美在于洞察结构这道题看似简单却完美展示了如何通过分析数据结构特点有序 尾部空闲设计高效策略如何用极低的空间代价O(1)完成任务为什么时间复杂度 O(mn)是最优的每个元素至少要看一次。下次遇到“合并有序数组”别再想着新建数组了试试从后往前三指针出击记住好的算法不是代码多炫而是恰到好处地利用已知条件。Happy Coding
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

微信小程序可做购物网站吗外贸网站和企业网站

深度深度研究报告:倾佳电子代理之基本半导体碳化硅MOSFET产品可靠性物理机制与其在新型电力系统关键设备中的应用价值全景解析 第一章 绪论:第三代半导体时代的供应链协同与技术重构 1.1 全球能源变革下的功率半导体范式转移 当前,全球正处…

张小明 2026/3/5 7:29:08 网站建设

一级网站和二级网站的区别58同城 招聘 找工作

Android应用开发实战指南:完整项目资源解析 【免费下载链接】Android开发期末大作业资源文件 本仓库提供了一个Android开发期末大作业的资源文件,文件名为android开发期末大作业.zip。该资源文件包含了项目源码、任务书、实验大报告以及apk文件。通过这些…

张小明 2026/3/5 7:29:12 网站建设

网站建设与管理工资佛山企业做网站

LangFlow镜像翻译节点:多语种互译提升全球化能力 在当今全球互联的商业环境中,AI系统不再只是服务单一语言用户的技术工具,而是需要跨越语言与文化的智能桥梁。无论是跨境电商客服、国际教育平台,还是跨国企业知识管理&#xff0…

张小明 2026/3/5 7:29:13 网站建设

免费申请账号网站网站建设与管理asp

Espanso文本扩展器完全手册:5个技巧让你的输入效率翻倍 【免费下载链接】espanso Cross-platform Text Expander written in Rust 项目地址: https://gitcode.com/gh_mirrors/es/espanso 你是否曾经在重复输入同样的地址、签名或代码片段时感到厌倦&#xff…

张小明 2026/3/5 7:29:14 网站建设

做营销型网站要多少钱seo职位描述

Kotaemon是否适合初创公司?听听早期用户怎么说 在AI技术加速落地的今天,越来越多的初创公司开始尝试将大语言模型(LLM)融入产品中。然而,现实往往比想象更骨感:许多团队发现,即使有了强大的生成…

张小明 2026/3/5 7:30:19 网站建设