Monday, 30 April 2012

Quick Sort in Liberty BASIC


SUB QuickSort Begin, End
  I = Begin
  J = End
  P = Arr(INT((I+J)/2))
  WHILE I <= J
    WHILE Arr(I) < P
      I = I + 1
    WEND
    WHILE Arr(J) > P
      J = J - 1
    WEND
    IF I <= J THEN
      A = Arr(I)
      Arr(I) = Arr(J)
      Arr(J) = A
      I = I + 1
      J = J - 1
    END IF
  WEND
  FOR K = 1 TO End
    PRINT Arr(K); " ";
  NEXT K
  PRINT
  IF J > Begin THEN CALL QuickSort Begin, J
  IF I < End THEN CALL QuickSort I, End
END SUB

No comments:

Post a Comment