From: Mikejcowan@aol.com
Date: June 5, 2005 10:58:25 AM CDT
ANCHISES.

    'Generation of perms using Heap's algorithm
    'Takes 24 seconds for 9 digits, 250 seconds for 10 digits on 2.4GHz P4 PC
    'if you omit the time consuming step of printing out every perm.

    dim swaparray(20)
    dim str(20)

    StartTime = time$("seconds")

    length = 5        'number of integers to be permed

    for j = 0 to length-1
      swaparray(j) = 0
      str(j) = j
    next j



   print "Perms are: ";
   for j = 0 to length-1
      print str(j);
   next j
   print "  ";

   nr=1
   n=0
   while n < length
      if swaparray(n) < n then
         x = int(n/2)
         if x > 0 then
            buff = str(n)
            str(n) = str(swaparray(n))
            str(swaparray(n)) = buff
         else
            buff = str(n)
            str(n) = str(0)
            str(0) = buff
         end if
         swaparray(n)=swaparray(n) + 1

         for j = 0 to length - 1
            print str(j);
         next j
         print "  ";

         nr = nr + 1
         n = 0
      else
         swaparray(n) = 0
         n = n + 1
      end if
   wend


   print
   print "Total number of perms = "; nr


   EndTime = time$("seconds")

  print "Time taken = "; EndTime-StartTime; " seconds"

