1. 梗概:
- 初始先把用来比较的两个最小记录设为无穷大
- 遍历数组, 找到对应条件下比记录中次小数还小的数
- 如果比最小的数还小
- 先把最小数搬给次小数
- 更新最小数
- 如果>=最小数且<次小数(否则)
- 更新次小数
- 如果比最小的数还小
2. c语言实现
void Twomin(int A[],int n,int *index1,int *index2){
//在长为n的数组A中找最小的两个数,依次把下标给index1和index2
int min1=32767,min2=32767;
for(int i=0;i<n;++i){
if((/*condition*/)&&A[i]<min2){
if(A[i]<min1){
/*先把最小给次小*/
*index2=*index1;
min2=min1;
/*更新最小*/
*index1=i;
min1=A[i];
}
else{
*index2=i;
min2=A[i];
}
}
}
}