Fortran数组排序:冒泡排序法

冒泡排序原理

“冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。————来自百度百科

示例程序

请将以下八个数字从小到大排序:4.5,6.7,5.7,1.9,9.4,5.4,8.2,6.7

program main
parameter(n=8)
real*8 :: a(n),b(n)
real*8 :: temp
integer :: i,j
data a/4.5,6.7,5.7,1.9,9.4,5.4,8.2,6.7/
do i=1,n-1
  do j=i+1,n
   if (a(i).gt.a(j)) then
   temp = a(i)
   a(i) = a(j)
   a(j) = temp
   endif
  enddo
enddo 
write(6,'(7(f3.1,"<"),f3.1)') (a(k),k=1,8)
end

输出结果是

1.9<4.5<5.4<5.7<6.7<6.7<8.2<9.4