已知含有n个整型元素的线性表存放于数组A中,编写算法输出线性表中最小的两个元素的值
时间: 2024-10-08 08:16:11 浏览: 37
线性表的顺序存储 线性表的顺序存储
为了找到线性表(数组A)中最小的两个元素,可以使用一种简单的双指针策略。以下是步骤:
1. 初始化两个变量,`min1`和`min2`,分别设置为数组的第一个元素A[0],假设它是最小的。
2. 创建两个指针,`i`和`j`,初始化为1。指针`i`用于遍历列表寻找第二个最小的元素,而指针`j`稍后会替换`min2`。
3. 遍历数组从索引`j`开始,直到数组结尾:
- 比较当前元素A[j]和`min2`,如果A[j]小于`min2`,则更新`min2`为A[j]。
- 再比较`min2`和`min1`,如果`min2`更小,则交换它们的位置,即`min1 = min2`,`min2 = A[j]`。
4. 当`j`到达数组结尾时,`min1`将包含最小的元素,`min2`将包含第二小的元素。因为我们在遍历时从未让`min1`指向超过`min2`的元素,所以这个顺序不会出错。
5. 输出`min1`和`min2`的值。
下面是伪代码形式:
```python
function findTwoSmallest(A, n):
min1 = A[0]
min2 = A[0]
i = 1
while i < n:
if A[i] < min2:
min2 = A[i]
elif A[i] < min1 and A[i] != min2:
min1 = A[i]
i += 1
return (min1, min2)
```
阅读全文