2020-10-23

本文探讨了数据结构与算法的基本概念,包括数据的逻辑结构、存储结构和相关算法。重点介绍了查找算法的平均比较次数,以及算法的时间复杂度和空间复杂度。同时,通过实例解析了不同算法的时间复杂度表现,强调了算法效率的重要性,并讨论了程序执行效率与所用语言及计算机的关系。此外,还涉及了数据元素和算法的基本单位以及算法执行次数的数量级计算。
摘要由CSDN通过智能技术生成

数据结构与算法第一章绪论

1.数据结构研究的内容是( D )。
A.数据的逻辑结构 B.数据的存储结构
C.建立在相应逻辑结构和存储结构上的算法 D.包括以上三个方面

计算机算法指的是(解决问题的步骤序列 ),它必须具备的三个特性: 可执行性、确定性、有穷性

2.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(C)个元素结点
A.n/2 B.n C.(n+1)/2 D.(n-1)/2

3.,算法的计算量的大小称为计算的( B )。【北京邮电大学2000 二、3 (20/8分)】
A.效率 B. 复杂性 C. 现实性 D. 难度

4, 算法的时间复杂度取决于(c )【中科院计算所 1998 二、1 (2分)】
A.问题的规模 B. 待处理数据的初态 C. A和B

数据元素(记录)是数据的最小单位。( X ) 基本单位
算法的优劣与算法描述语言无关,但与所用计算机有关。( X )
程序一定是算法。( x )
相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (对)
所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(X)
同一个算法,实现语言的级别越高,执行效率就越低(对)

1.数据的物理结构包括 数据元素 的表示和 数据元素直接关系 的表示。
11.下面程序段中带下划线的语句的执行次数的数量级是: 【合肥工业大学1999三、1(2分)】

i:=1; WHILE i<n DO i:=i*2;

  1. 下面程序段中带下划线的语句的执行次数的数量级是( )。【合肥工业大学 2000 三、1(2分)】

i:=1;

WHILE i<n BEGIN FOR j:=1 TO n DO x:=x+1;i:=i*2 END;

  1. 下面程序段中带有下划线的语句的执行次数的数量级是( ) 【合肥工业大学 2001 三、1(2分)】

i:=n*n WHILE i<>1 DO i:=i div 2;

  1. 计算机执行下面的语句时,语句s的执行次数为 _______ 。【南京理工大学2000二、1(1.5分)】

FOR(i=l;i<n-l;i++)

FOR(j=n;j>=i;j--)

s; 
  1. 下面程序段的时间复杂度为________。(n>1)

     sum=1;
    
     for (i=0;sum<n;i++) sum+=1;    【南京理工大学 2001 二、1(2分)】
    
可以通过Java中的日期时间类 `LocalDate` 和 `LocalDateTime` 来实现该功能。 首先,我们需要将时间段转换为 `LocalDateTime` 对象,然后将时间部分设置为 00:00:00 或 23:59:59,最后遍历每一天,获取每一天的开始时间和结束时间。 以下是代码示例: ```java import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; public class TimeUtils { public static void main(String[] args) { String startStr = "2020-11-20 09:09:09"; String endStr = "2021-10-09 10:10:10"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime start = LocalDateTime.parse(startStr, formatter); LocalDateTime end = LocalDateTime.parse(endStr, formatter); // 将时间部分设置为 00:00:00 或 23:59:59 LocalDateTime startOfDay = start.with(LocalTime.MIN); LocalDateTime endOfDay = end.with(LocalTime.MAX); // 遍历每一天,获取每一天的开始时间和结束时间 LocalDate startDate = startOfDay.toLocalDate(); LocalDate endDate = endOfDay.toLocalDate(); while (!startDate.isAfter(endDate)) { LocalDateTime startOfDayOfDate = startDate.atStartOfDay(); LocalDateTime endOfDayOfDate = startDate.atTime(LocalTime.MAX); System.out.println("Start time of " + startDate + ": " + startOfDayOfDate); System.out.println("End time of " + startDate + ": " + endOfDayOfDate); startDate = startDate.plusDays(1); } } } ``` 输出结果如下: ``` Start time of 2020-11-20: 2020-11-20T00:00 End time of 2020-11-20: 2020-11-20T23:59:59.999999999 Start time of 2020-11-21: 2020-11-21T00:00 End time of 2020-11-21: 2020-11-21T23:59:59.999999999 ... Start time of 2021-10-09: 2021-10-09T00:00 End time of 2021-10-09: 2021-10-09T23:59:59.999999999 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值