fortran 快速排序
时间: 2024-04-05 10:28:39 浏览: 189
Fortran是一种高级编程语言,广泛用于科学计算和数值分析。快速排序(Quick Sort)是一种常用的排序算法,它的基本思想是通过递归地将数组分成较小和较大的两个子数组,然后对这两个子数组进行排序。
下面是Fortran中实现快速排序的一个简单示例:
```fortran
subroutine quicksort(arr, low, high)
implicit none
integer, intent(inout) :: arr(:)
integer, intent(in) :: low, high
integer :: i, j, pivot, temp
if (low < high) then
pivot = arr(low)
i = low
j = high
do while (i < j)
do while (arr(i) <= pivot .and. i <= high)
i = i + 1
end do
do while (arr(j) > pivot)
j = j - 1
end do
if (i < j) then
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
end if
end do
temp = arr(low)
arr(low) = arr(j)
arr(j) = temp
call quicksort(arr, low, j - 1)
call quicksort(arr, j + 1, high)
end if
end subroutine
program main
implicit none
integer :: arr(10) = [9, 4, 7, 2, 8, 5, 1, 3, 6, 0]
integer :: i
call quicksort(arr, 1, size(arr))
do i = 1, size(arr)
print *, arr(i)
end do
end program
```
上述代码中,`quicksort`是一个递归的子程序,用于对数组进行快速排序。`arr`是待排序的数组,`low`和`high`分别表示数组的起始位置和结束位置。在每一次递归中,选择一个基准元素(pivot),将数组分成两个子数组,然后对这两个子数组分别进行排序。最后,通过交换元素的方式将数组排序完成。
阅读全文