home *** CD-ROM | disk | FTP | other *** search
/ PC User 2001 August / APC_Aug2001_CD2.iso / features / devtools / files / lb202win.exe / LB202W.EXE / QSORTLB.BAS < prev    next >
Encoding:
BASIC Source File  |  2000-12-06  |  1012 b   |  48 lines

  1. 'Liberty BASIC has its own built-in sorting capability, but here
  2. 'is an example of how you would write this in BASIC.
  3. 'Adapted from Beginning Programming for Dummies by Wallace Wang
  4.  
  5. mainwin 80 'give me 80 columns
  6. MaxSize = 25
  7. dim NumArray(MaxSize)
  8. for i = 1 to MaxSize
  9.   NumArray(i) = int(rnd(1)*10) + 1
  10.   print NumArray(i); " ";
  11. next i
  12. print "(Initial array)"
  13.  
  14. call QSort 1, MaxSize
  15.  
  16. for i = 1 to MaxSize
  17.   print NumArray(i); " ";
  18. next i
  19. print "(Sorted array)"
  20. end
  21.  
  22. sub QSort Start, Finish
  23.   i = Start
  24.   j = Finish
  25.   x = NumArray(int((i+j)/2))
  26.   while i <= j
  27.     while NumArray(i) < x
  28.       i = i + 1
  29.     wend
  30.     while NumArray(j) > x
  31.       j = j - 1
  32.     wend
  33.     if i <= j then
  34.       a = NumArray(i)
  35.       NumArray(i) = NumArray(j)
  36.       NumArray(j) = a
  37.       i = i + 1
  38.       j = j - 1
  39.     end if
  40.   wend
  41.   for k = 1 to Finish
  42.     print NumArray(k); " ";
  43.   next k
  44.   print
  45.   if j > Start then call QSort Start, j
  46.   if i < Finish then call QSort i, Finish
  47. end sub
  48.