Skip to content

Commit

Permalink
✏️ 更新习题集文档
Browse files Browse the repository at this point in the history
  • Loading branch information
kangjianwei committed Mar 25, 2020
1 parent 6449fae commit 8baea43
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,11 @@ int Time (int n)
#### 2<sup>100</sup>,(3/2)<sup>n</sup>,(2/3)<sup>n</sup>,(4/3)<sup>n</sup>,n<sup>n</sup>,n<sup>3/2</sup>,n<sup>2/3</sup>,√n,n!,n,log<sub>2</sub>n,n/log<sub>2</sub>n,log<sup>2</sup><sub>2</sub>n,log<sub>2</sub>(log<sub>2</sub>n),nlog<sub>2</sub>n,n<sup>log<sub>2</sub>n</sup>
> 各函数的排列次序如下:
![1.10.1](_v_images/20181125002335576_8701.png)
![1.10.2](_v_images/20181125002344865_51.png)
>
> ![1.10.1](_v_images/20181125002335576_8701.png)
> ![1.10.2](_v_images/20181125002344865_51.png)
> 注:习题集中给出的第12个函数为n/logn2,这应当是笔误,实际为n/log2n
### 1.11 已知有实现同一功能的两个算法,其时间复杂度分别为O(2<sup>n</sup>)和O(n<sup>10</sup>),假设现实计算机可连续运算的时间为10<sup>7</sup>秒(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)10<sup>5</sup>次。试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,30 +372,42 @@ Status DeleteAndInsertSub (LinkedList la, LinkedList lb, int i, int j, int len)

>[Question-2.23-main.c](▼习题测试文档-02/Question-2.23-main.c)
> 关键词:单链表
### 2.24 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。

>[Question-2.24-main.c](▼习题测试文档-02/Question-2.24-main.c)
> 关键词:递增单链表
### 2.25 假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。试对顺序表编写求C的算法。

>[Question-2.25-main.c](▼习题测试文档-02/Question-2.25-main.c)
> 关键词:递增无重复顺序表
### 2.26 要求同2.25题。试对单链表编写求C的算法。

>[Question-2.26-main.c](▼习题测试文档-02/Question-2.26-main.c)
> 关键词:递增无重复单链表
### 2.27 对2.25题的条件作以下修改,对顺序表重新编写求得表C的算法。
###### (1)假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同;
###### (2)利用A表空间存放表C。

>[Question-2.27-main.c](▼习题测试文档-02/Question-2.27-main.c)
> 关键词:递增有重复顺序表
### 2.28 对2.25题的条件作以下两点修改,对单链表重新编写求得表C的算法。
###### (1)假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同。
###### (2)利用原表(A表或B表)中的结点构造表C,并释放A表中的无用结点空间。

>[Question-2.28-main.c](▼习题测试文档-02/Question-2.28-main.c)
> 关键词:递增有重复单链表,释放无效结点
### 2.29 已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现,又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:同一表中各元素值可能相同)。

>[Question-2.29-main.c](▼习题测试文档-02/Question-2.29-main.c)
Expand Down
12 changes: 12 additions & 0 deletions 习题解析/02 线性表/第02章 线性表.md
Original file line number Diff line number Diff line change
Expand Up @@ -362,30 +362,42 @@ Status DeleteAndInsertSub (LinkedList la, LinkedList lb, int i, int j, int len)
###### 或者&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C=(a1, b1, ..., an, bn, an+1, ..., am) 当m>n时。
### 线性表A,B和C均以单链表作存储结构,且C表利用A表和B表中的结点空间构成。注意:单链表的长度值m和n均未显式存储。

> 关键词:单链表
----------

### 2.24 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。

> 关键词:递增单链表
----------

### 2.25 假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。试对顺序表编写求C的算法。

> 关键词:递增无重复顺序表
----------

### 2.26 要求同2.25题。试对单链表编写求C的算法。

> 关键词:递增无重复单链表
----------

### 2.27 对2.25题的条件作以下修改,对顺序表重新编写求得表C的算法。
###### (1)假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同;
###### (2)利用A表空间存放表C。

> 关键词:递增有重复顺序表
----------

### 2.28 对2.25题的条件作以下两点修改,对单链表重新编写求得表C的算法。
###### (1)假设在同一表(A或B)中可能存在值相同的元素,但要求新生成的表C中的元素值各不相同。
###### (2)利用原表(A表或B表)中的结点构造表C,并释放A表中的无用结点空间。

> 关键词:递增有重复单链表,释放无效结点
----------

### 2.29 已知A,B和C为三个递增有序的线性表,现要求对A表作如下操作:删去那些既在B表中出现,又在C表中出现的元素。试对顺序表编写实现上述操作的算法,并分析你的算法的时间复杂度(注意:同一表中各元素值可能相同)。
Expand Down

0 comments on commit 8baea43

Please sign in to comment.