クイックソート

目的

長さ$n$の整数配列を昇順にソートします。

計算量

平均$O(n\log n)$

使い方

recursive function qsort(a)
配列aを昇順にソートしてreturnします。

ソースコード

recursive function qsort(a)result(res)
	implicit none
	integer,intent(in)::a(:)
	integer::res(size(a))
	if(size(a)<=1)then
		res=a
		return
	end if
	res=[qsort(pack(a(2:),a(2:)<a(1))),a(1),qsort(pack(a(2:),a(2:)>=a(1)))]
end function qsort