// quicksort

N, a[10]

inita()
  i = 0
  while( i<N )
    a[i] = i
    i = i + 1

show()
  i = 0
  while( i<N )
    print(a[i]," ")
    i = i + 1
  print("\n")

swap(i,j)
  t = a[i]
  a[i] = a[j]
  a[j] = t

partition(p,r)
  x = a[p]
  i = p - 1
  j = r + 1
  flag = 1
  while(flag)
    j = j - 1
    while(a[j] > x)
      j = j - 1
    i = i + 1
    while(a[i] < x)
      i = i + 1
    if( i < j ) swap(i,j)
    else flag = 0
  return j

quicksort(p,r)
  if(p < r)
    q = partition(p,r)
    quicksort(p,q)
    quicksort(q+1,r)

main()
  N = 10
  inita()
  swap(0,5)
  swap(2,8)
  show()
  quicksort(0,N-1)
  show()

