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

数据结构——例题1

eg1:求解 S = 1! + 2! + 3! + ... + n!

#include<stdio.h>
#include<stdlib.h>long sum(int n){long s = 0,t,i,j;for(i=1;i<=n;i++){t=1;for(j=1;j<=i;j++){t*=j;}s+=t;}return s;
}int main(){int n;printf("请输入一个整数:");scanf("%d",&n);printf("%d",sum(n));
}

eg2:以下说法不正确的是__B__

A.数据元素是数据的基本单位

B.数据项可由若干个数据元素构成

C.数据项是不可分割的最小标识单位

D.数据可由若干个数据元素构成

eg3:在数据结构中,与所使用的计算机无关的是数据的__C__结构

A.逻辑和存储

B.物理

C.逻辑

D.存储

解析:在数据结构的分类中,数据的逻辑结构是指数据元素之间的相互关系及其组织方式,这种关系和组织方式是独立子具体计算机实现的。换句话说,逻辑结构关注的是数据本身的抽象关系,而不是这些数据在计算机中如何存储和实现。
选项A:存储结构,是数据在计算机内存中的具体表示方式,与计算机有关。
选项B:物理结构,指的是数据在计算机硬件上的具体存储形式,与计算机有关。
选项C:逻辑结构,是指数据元素之间的逻辑关系,与具体计算机实现无关。
选项D:物理和存储结构,都涉及到具体的计算机实现,与计算机有关。

eg4:取算法的时间复杂度为O(n3次方),当n=5时执行时间为50s,当n=15时,执行时间为__D__

A.675

B.2025

C.3375

D.1350

解析:T(n)=O(n的3次方)=m*n^3,当n=5 时T(n)=50s,求得m=0.4。当n=15 时,T(n)=m*n^3=0.4*15^3=1350s 。

eg5:下面程序的时间复杂度为__C__

void fun(int n) {int i = 1;while(i<=n) i=i*2}

A.O(nlog2n)

B.O(n)

C.O(log2n)

D.O(n^2)

解析:①列出循环趟数t以及每轮i的变化值

t012345
i12481632

②找到i与t的关系:i=2^t

③确定停止条件:i<=n

④联立①②方程:2^t<=n  -->  t<=log2n

所以T=O(log2n)

eg6:下面程序的时间复杂度为__C__
int count=0;
for(k=1 ; k<=n ; k*=2)
   for(j=1;j<=n;j++)
      count++;

解析:①列出外层循环趟数t1,列出外层循环中k的变化值

t1012345
k12481632

②找到k与t1的关系:k=2^t1

③由外层循环for(k=1 ; k<=n ; k*=2)可得:2^t1<=n,即t1=log2n,说明外层循环有log2n次

④列出内层语句的执行次数t2

t1012345
k12481632
t2123456

⑤求内层语句的执行次数t2之和S

内层循环:对于外层循环的每一次迭代,内层循环都会完整的从j=1执行到j=n,即内层循环每次执行n次

总执行次数:由于外层循环执行log2n次,每次外层循环时内层循环执行n次,所以总的执行次数S=n*log2n

时间复杂度:根据大O表示法,该双层循环的时间复杂度为O(nlog2n)

eg7:以下函数中时间复杂度最小的是__D__

A.T1(n) = nlog2n + 5000n

B.T2(n) = n^log2n-6000n

C.T3(n) = n^2-8000n

D.T4(n) = 20000log2n

解析:

http://www.xdnf.cn/news/5818.html

相关文章:

  • 基于Qt的app开发第八天
  • C++设计模式——单例模式
  • 微信小程序 自定义图片分享-绘制数据图片以及信息文字
  • React系列——HOC高阶组件的封装与使用
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十二讲)
  • (2)python开发经验
  • 下周,Coinbase将被纳入标普500指数
  • windows c++ (9) 程序内注册服务并修改登录账户
  • 使用 `aiohttp` 构建高效的异步网络爬虫系统
  • 一次讲清 FP32 / FP16 / BF16 / INT8 / INT4
  • VR和眼动控制集群机器人的方法
  • 青少年编程与数学 02-019 Rust 编程基础 10课题、函数、闭包和迭代器
  • 机器学习中分类模型的常用评价指标
  • 设计模式系列(03):设计原则(二):DIP、ISP、LoD
  • SpringBoot与Eventuate Tram整合 - 实现转账最终一致性系统
  • 解锁生命周期评价密码:OpenLCA、GREET 与 R 语言的融合应用
  • 基于 Amazon Bedrock 和 Amazon Connect 打造智能客服自助服务 – 设计篇
  • 【阿里云】阿里云 Ubuntu 服务器无法更新 systemd(Operation not permitted)的解决方法
  • Java Solon v3.3.0 发布(国产优秀应用开发基座)
  • Spring Boot Swagger 安全防护全解析:从旧版实践到官方规范
  • Spring Boot 跨域问题全解:原理、解决方案与最佳实践
  • Tomcat和Nginx的主要区别
  • 【MySQL】第三弹——表的CRUD进阶(一)数据库约束
  • 地址簿模块-01.需求分析
  • D-Pointer(Pimpl)设计模式(指向实现的指针)
  • 在VSCode中接入DeepSeek的指南
  • 【时时三省】(C语言基础)使用字符串处理函数
  • 基于Spring Boot+Layui构建企业级电子招投标系统实战指南
  • 人脸识别系统中的隐私与数据权利保障
  • ‌OPE.AI开放平台:一站式企业AI应用引擎