03_set slice的时间复杂度

博客主要围绕set slice的时间复杂度展开,通过切片赋值进行解释。对li[0:3]赋值时,删除元素的时间复杂度为O(n),插入6个元素,每个元素插入时间复杂度为O(1),得出set slice的时间复杂度是O(n + k)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set slice O(n+k)

使用切片赋值来解释set slice的时间复杂度

(1) 对li[0:3]赋值首先会删除1,2,3,空出来的位置被后面的元素依次向前移动填充,由del slice 得时间复杂度是 O(n),得出此时的时间复杂度是O(n),复杂度并不要求准确严格而是使用一种渐进表示的方式。

(2) 这个时候[33,44,55,66,77,88]插入到列表的位置是确定的,每次都插入到列表的开头,没插入一个元素的时间复杂度是O(1),此处有6个元素,所以是O(6)

所以综上set slice 的时间复杂度是O(n+k)

转载于:https://www.cnblogs.com/summer1019/p/10555443.html

在下面matlab程序基础上改写代码,使输出结果能输出多个剖面图,并合成生成立体三维图像x1 = 933650.0; y1 = 2119728.26; x2 = 403940.0; y2 = 2122400.0; nstep = 6; numprocs = 32; data_directory = 'E:\研究生论文\SUNTANS\data1defreal80tvd5_tSmaN\data1defreal80tvd5_tSmaNr1'; grid_directory = 'E:\研究生论文\SUNTANS\data1defreal80tvd5_tSmaN\data1defreal80tvd5_tSmaNr1'; Nslice = 2000; VERBOSE = 1; % 读取网格数据 if(~exist('xall','var')) [ind,repeats,xall,yall,dall,z,triall,Nc,Nkall] = readgrid(grid_directory,numprocs); Nkmax = max(Nkall); end % 读取温度数据 if(~exist('data','var')) data = readalldata(data_directory,'T.dat',1,'T',numprocs,nstep,Nkmax,Nc,ind,repeats,VERBOSE); end % 计算断面数据 xplot = linspace(x1,x2,Nslice); yplot = linspace(y1,y2,Nslice); data_slice = getslice(xall,yall,data,xplot,yplot,Nkmax); depth_slice = getslice(xall,yall,dall,xplot,yplot,Nkmax); rplot = sqrt((xplot-xplot(1)).^2+(yplot-yplot(1)).^2); %% 新增三维绘图部分 figure(2); clf; % 生成三维网格 z_vector = z(:); % 确保z为列向量 X3D = repmat(xplot, length(z_vector), 1); Y3D = repmat(yplot, length(z_vector), 1); Z3D = repmat(z_vector, 1, length(xplot)); fprintf('Z3D 维度: %d×%d×%d\n', size(Z3D,1), size(Z3D,2), size(Z3D,3)); fprintf('depth_slice 维度: %d×%d\n', size(depth_slice,1), size(depth_slice,2)); % 处理数据掩码 data_3D = data_slice'; % 将depth_slice重塑为与Z3D相同维度 reshaped_slice = reshape(depth_slice, [1, 2000, 100]); corrected_slice = permute(reshaped_slice, [3,2,1]); % 100×2000×1 mask = Z3D < -corrected_slice; data_3D(mask) = nan; % 三维曲面绘制 surf(X3D, Y3D, Z3D, data_3D, 'EdgeColor', 'none'); shading interp; view(-30, 30); % 设置视角 xlabel('X (m)'); ylabel('Y (m)'); zlabel('Depth (m)'); colorbar; colormap(jet); title('三维温度分布 - 2018-05-16 01:00'); set(gca, 'FontSize', 12, 'ZDir', 'reverse'); % Z轴方向反转 grid on;
03-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值