%	A general "driver" program for sorting.

include "types.t"
include "getfile.t"
include  "sortgen.t"

var compares:int := 0

function less(a,b:string): boolean
	compares := compares + 1
	result a < b
end less

function greater(a,b:string): boolean
	compares := compares + 1
	result a > b
end greater

var A,B:   namelist
var n:   int

GetFile(A,n)
B := A				% save A in B (N/A in all languages)

put "Unsorted list:"
for i:1..n
	put A(i)
end for

compares := 0
generalsort(A,n,less)
put " "
put "Sorted list in descending order:"
for i:1..n
	put A(i)
end for

put "Number of comparisons: ", compares
compares := 0

generalsort(B,n,greater)
put " "
put "Sorted list in ascending order:"
for i:1..n
	put B(i)
end for

put "Number of comparisons: ", compares
