二分法fortran代码
时间: 2023-08-15 19:01:47 浏览: 194
二分法Fortran代码
二分法(又称二分查找)是一种在有序数组中查找特定元素的搜索算法。它是将目标值与数组的中间元素进行比较,并根据比较结果将搜索范围缩小一半,直到找到目标值或者确定不存在。
下面是一个使用Fortran语言实现的二分法搜索算法的示例代码:
```fortran
program binary_search
implicit none
integer, parameter :: size = 10
integer :: arr(size) = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
integer :: target, low, high, mid, index
write(*,*) "请输入要查找的目标值:"
read(*,*) target
low = 1
high = size
index = -1
do while (low <= high)
mid = (low + high) / 2
if (target == arr(mid)) then
index = mid
exit
else if (target < arr(mid)) then
high = mid - 1
else
low = mid + 1
endif
end do
if (index == -1) then
write(*,*) "目标值不存在于数组中。"
else
write(*,*) "目标值位于数组的第", index, "个位置。"
endif
end program binary_search
```
上述代码首先定义一个大小为10的有序数组arr,并接受用户输入的目标值target。然后使用low和high两个指针来表示搜索的范围,初始设置为数组的起始位置和结束位置。使用一个循环进行二分搜索,通过计算mid的值来确定中间元素的位置,如果目标值等于中间元素,则搜索结束并返回该位置。如果目标值小于中间元素,则更新high指针为mid-1,否则更新low指针为mid+1。若循环结束后仍未找到目标值,则输出目标值不存在于数组中的提示信息;否则输出目标值所在位置的信息。
希望以上回答能够满足您的需求。
阅读全文