bash에서 정수 배열에서 최대 값을 찾으려고합니다. 나는 bash에 꽤 새로운 사람이다. 배열이 약 500 양의 정수의 예입니다 여기에 은 ...배열 값을 최대로 비교하는 Bash
max="${array[0]}"
for ((i=0;i<${#array[@]};i++))
do
if [ ${array[$i]} > $max ]
then
max="${array[$i]}"
fi
done
내가 지금까지있는 것입니다. 24 27 13 34 2 104 645 411 1042 38 5 24 120 236 2 33 6
. 현재 그것은 항상 내 배열의 마지막 정수를 반환합니다. 쉬운 수정이되어야하는 것 같지만, 내가 무엇을 놓치고 있는지 확실하지 않습니다. 어떤 도움을 주셔서 감사합니다.
[[ ${array[$i]} -gt $max ]] # numeric comparison operator
((${array[$i]} > $max)) # arithmetic evaluation
또는 아마에도 불구하고 빨라집니다 표준 도구를 사용
정렬은 루프가있는 최대 값을 찾기 위해 O (n)와 비교하여 O (ng n) 연산이므로 max를 찾는 데있어 과잉입니다. 하지만 목록의 크기에 따라 차이가 나지 않거나 그 차이가 걱정할 필요가 없습니다. – chepner