/**
* @Author: Liyutian
* @Date:Create:in 2020/10/9 16:52
*/
/**
* 选出数组中第二小的元素
*/
public class SelectSecondMin {
/**
* 返回数组中第二小的元素
* @param a
* @return
*/
public int selectSMin(int[] a){
int low = 0, high = a.length - 1, mid = (low + high) / 2;
int minA = a[0], minB = a[high];
for (int i = low; i < mid; i++){
if (a[i] < minA){
minA = a[i];
}
}
for (int j = mid; j <= high; j++){
int tmp;
if (a[j] < minB){
tmp = a[j];
if (tmp != minA){
minB = tmp;
}
}
}
return (minA > minB) ? minA : minB;
}
}
请指教