Repository URL to install this package:
|
Version:
2.5.0 ▾
|
]q (cpygments.token
_TokenType
qX CommentqX Multilineqq
qq}q(X subtypesqcbuiltins
set
q ]q
qRqX parentq
hh
q
qq}q(hh ]q(hhX Preprocqq
qq}q(hh ]q
qRqh
hubhhX Multiqq
qq}q(hh ]q
q!Rq"h
hubhhX Hashbangq#q$
q%q&}q'(hh ]q(
q)Rq*h
hubhhX Singleq+q,
q-q.}q/(hh ]q0
q1Rq2h
hubhhX
SingleLineq3q4
q5q6}q7(hh ]q8
q9Rq:h
hubhhX Docq;q<
q=q>}q?(hh ]q@
qARqBh
hubhhX DirectiveqCqD
qEqF}qG(hh ]qH
qIRqJh
hubhhhX
SinglelineqKqL
qMqN}qO(hh ]qP
qQRqRh
hubhhX PreprocFileqSqT
qUqV}qW(hh ]qX
qYRqZh
hubhhX Specialq[q\
q]q^}q_(hh ]q`
qaRqbh
hube
qcRqdh
h)
qeqf}qg(hh ]qh(hX Escapeqi
qj
qkql}qm(hh ]qn
qoRqph
hfubhX Operatorqq
qr
qsqt}qu(hh ]qv(hhqX DBSqwqx
qyqz}q{(hh ]q|
q}Rq~h
htubhhqX Wordqq
qq}q(hh ]q
q
Rqh
htube
qRqh
hfhhhwhzubhX Nameq
q
qq}q(hh ]q(hhX Tagqq
qq}q(hh ]q
qRqh
hubhhX Entityqq
qq}q(hh ]qhhhhwq
qq}q (hh ]q¡
q¢Rq£h
huba
q¤Rq¥h
hhwhubhhX Exceptionq¦q§
q¨q©}qª(hh ]q«
q¬Rqh
hubhhX Decoratorq®q¯
q°q±}q²(hh ]q³
q´Rqµh
hubhhX Classq¶q·
q¸q¹}qº(hh ]q»(hhh¶hwq¼
q½q¾}q¿(hh ]qqÁRqÂh
h¹ubhhh¶X StartqÇqąqŁqÆ}qÇ(hh ]qȅqÉRqÊh
h¹ube
qËRqÌh
hhÃhÆhwh¾ubhhX Variableq͆q΅qρqÐ}qÑ(hh ]qÒ(hhhÍX AnonymousqӇqԅqՁqÖ}q×(hh ]qqÙRqÚh
hÐubhhhÍh¶qۅq܁qÝ}qÞ(hh ]q߅qàRqáh
hÐubhhhÍX Magicqâqã
qäqå}qæ(hh ]qç
qèRqéh
hÐubhhhÍX Globalqêqë
qìqí}qî(hh ]qï
qðRqñh
hÐubhhhÍX Instanceqòqó
qôqõ}qö(hh ]q÷
qøRqùh
hÐube
qúRqûh
hh¶hÝhêhíhòhõhâhåhÓhÖubhhX Attributeqüqý
qþqÿ}r (hh ]r hhhüh͇r
r r }r (hh ]r
r Rr h
hÿuba
r Rr
h
hhÍj ubhhX Namespacer r
r
r }r (hh ]r
r Rr h
hubhhX Propertyr r
r r }r (hh ]r
r Rr h
hubhhX Symbolr r
r r }r (hh ]r
r! Rr" h
hubhhX Classesr# r$
r% r& }r' (hh ]r(
r) Rr* h
hubhhX Pseudor+ r,
r- r. }r/ (hh ]r0
r1 Rr2 h
hubhhX Labelr3 r4
r5 r6 }r7 (hh ]r8
r9 Rr: h
hubhhhqr;
r< r= }r> (hh ]r?
r@ RrA h
hubhhX BuiltinrB rC
rD rE }rF (hh ]rG (hhjB j+ rH
rI rJ }rK (hh ]rL
rM RrN h
jE ubhhjB X TyperO rP
rQ rR }rS (hh ]rT
rU RrV h
jE ube
rW RrX h
hj+ jJ jO jR ubhhX FieldrY rZ
r[ r\ }r] (hh ]r^
r_ Rr` h
hubhhX Otherra rb
rc rd }re (hh ]rf hhja X Memberrg rh
ri rj }rk (hh ]rl
rm Rrn h
jd uba
ro Rrp h
hjg jj ubhhX Functionrq rr
rs rt }ru (hh ]rv hhjq hârw
rx ry }rz (hh ]r{
r| Rr} h
jt uba
r~ Rr h
hhâjy ubhhjO r
r r }r (hh ]r
r
Rr h
hubhhX Constantr r
r r }r (hh ]r
r Rr h
hube
r Rr h
hfhühÿjB jE h¶h¹j j h®h±hhh¦h©jq jt j j j3 j6 j j ja jd hhhÍhÐjY j\ j j j+ j. hqj= j# j& jO j ubhX Literalr
r
r r }r (hh ]r (hj ja r
r r }r (hh ]r
r Rr h
j ubhj X Charr r
r r¡ }r¢ (hh ]r£
r¤ Rr¥ h
j ubhj X Dater¦ r§
r¨ r© }rª (hh ]r«
r¬ Rr h
j ubhj X Scalarr® r¯
r° r± }r² (hh ]r³ hj j® X Plainr´ rµ
r¶ r· }r¸ (hh ]r¹
rº Rr» h
j± uba
r¼ Rr½ h
j j´ j· ubhj X Stringr¾ r¿
rÀ rÁ }r (hh ]rà (hj j¾ X InterpolrÄ rÅ
rÆ rÇ }rÈ (hh ]rÉ
rÊ RrË h
jÁ ubhj j¾ X DelimeterrÌ rÍ
rÎ rÏ }rÐ (hh ]rÑ
rÒ RrÓ h
jÁ ubhj j¾ j rÔ
rÕ rÖ }r× (hh ]rØ
rÙ RrÚ h
jÁ ubhj j¾ j rÛ
rÜ rÝ }rÞ (hh ]rß
rà Rrá h
jÁ ubhj j¾ h+râ
rã rä }rå (hh ]ræ
rç Rrè h
jÁ ubhj j¾ ja ré
rê rë }rì (hh ]rí
rî Rrï h
jÁ ubhj j¾ X Backtickrð rñ
rò ró }rô (hh ]rõ
rö Rr÷ h
jÁ ubhj j¾ hirø
rù rú }rû (hh ]rü
rý Rrþ h
jÁ ubhj j¾ X Regexrÿ r
r r }r (hh ]r
r Rr h
jÁ ubhj j¾ X Momentr r
r r
}r (hh ]r
r
Rr h
jÁ ubhj j¾ X Booleanr r
r r }r (hh ]r
r Rr h
jÁ ubhj j¾ X Characterr r
r r }r (hh ]r
r Rr h
jÁ ubhj j¾ X Delimiterr r
r! r" }r# (hh ]r$
r% Rr& h
jÁ ubhj j¾ h;r'
r( r) }r* (hh ]r+
r, Rr- h
jÁ ubhj j¾ hr.
r/ r0 }r1 (hh ]r2
r3 Rr4 h
jÁ ubhj j¾ X Affixr5 r6
r7 r8 }r9 (hh ]r:
r; Rr< h
jÁ ubhj j¾ X Heredocr= r>
r? r@ }rA (hh ]rB
rC RrD h
jÁ ubhj j¾ X DoublerE rF
rG rH }rI (hh ]rJ
rK RrL h
jÁ ubhj j¾ X InterprM rN
rO rP }rQ (hh ]rR
rS RrT h
jÁ ubhj j¾ X AtomrU rV
rW rX }rY (hh ]rZ
r[ Rr\ h
jÁ ube
r] Rr^ h
j j5 j8 jð jó j jÖ j j" h;j) jE jH hijú j= j@ jÄ jÇ ja jë jÿ j h+jä j jÝ j j j j
jM jP j j jÌ jÏ jU jX hj0 ubhj X Numberr_ r`
ra rb }rc (hh ]rd (hj j_ X Floatre rf
rg rh }ri (hh ]rj
rk Rrl h
jb ubhj j_ X Decrm rn
ro rp }rq (hh ]rr
rs Rrt h
jb ubhj j_ X Radixru rv
rw rx }ry (hh ]rz
r{ Rr| h
jb ubhj j_ X Octr} r~
r r }r (hh ]r
r Rr h
jb ubhj j_ X Binr
r
r r }r (hh ]r
r Rr h
jb ubhj j_ hür
r r }r (hh ]r
r Rr h
jb ubhj j_ X Hexr r
r r }r (hh ]r
r Rr h
jb ubhj j_ X Integerr r
r r }r (hh ]r¡ h(j j_ j X Longr¢ tr£
r¤ r¥ }r¦ (hh ]r§
r¨ Rr© h
j uba
rª Rr« h
jb j¢ j¥ ubhj j_ X Decimalr¬ r
r® r¯ }r° (hh ]r±
r² Rr³ h
jb ube
r´ Rrµ h
j j
j je jh j j j j j} j ju jx hüj j¬ j¯ jm jp ube
r¶ Rr· h
hfj¾ jÁ j_ jb j¦ j© j® j± ja j j j¡ ubhX Genericr¸
r¹
rº r» }r¼ (hh ]r½ (hj¸ X Errorr¾ r¿
rÀ rÁ }r (hh ]rÃ
rÄ RrÅ h
j» ubhj¸ X
SubheadingrÆ rÇ
rÈ rÉ }rÊ (hh ]rË
rÌ RrÍ h
j» ubhj¸ X TracebackrÎ rÏ
rÐ rÑ }rÒ (hh ]rÓ
rÔ RrÕ h
j» ubhj¸ X OutputrÖ r×
rØ rÙ }rÚ (hh ]rÛ
rÜ RrÝ h
j» ubhj¸ X PromptrÞ rß
rà rá }râ (hh ]rã
rä Rrå h
j» ubhj¸ X Deletedræ rç
rè ré }rê (hh ]rë
rì Rrí h
j» ubhj¸ X Insertedrî rï
rð rñ }rò (hh ]ró
rô Rrõ h
j» ubhj¸ X Headingrö r÷
rø rù }rú (hh ]rû
rü Rrý h
j» ubhj¸ X Strongrþ rÿ
r r }r (hh ]r
r Rr h
j» ubhj¸ X Emphr r
r r }r
(hh ]r
r Rr
h
j» ube
r Rr h
hfjæ jé j j j¾ jÁ jö jù jî jñ jÖ jÙ jÞ já jþ j jÆ jÉ jÎ jÑ ubhj¾
r
r r }r (hh ]r
r Rr h
hfubhX Keywordr
r
r r }r (hh ]r (hj hr
r r }r (hh ]r!
r" Rr# h
j ubhj j r$
r% r& }r' (hh ]r(
r) Rr* h
j ubhj jO r+
r, r- }r. (hh ]r/
r0 Rr1 h
j ubhj X PreProcr2 r3
r4 r5 }r6 (hh ]r7
r8 Rr9 h
j ubhj X Controlr: r;
r< r= }r> (hh ]r?
r@ RrA h
j ubhj j rB
rC rD }rE (hh ]rF
rG RrH h
j ubhj j rI
rJ rK }rL (hh ]rM
rN RrO h
j ubhj j+ rP
rQ rR }rS (hh ]rT
rU RrV h
j ubhj X DeclarationrW rX
rY rZ }r[ (hh ]r\
r] Rr^ h
j ubhj X Reservedr_ r`
ra rb }rc (hh ]rd
re Rrf h
j ube
rg Rrh h
hfj jD jW jZ j jK j+ jR j_ jb jO j- j: j= j j& j2 j5 hj ubhja
ri
rj rk }rl (hh ]rm
rn Rro h
hfubhX Textrp
rq
rr rs }rt (hh ]ru (hjp X Rootrv rw
rx ry }rz (hh ]r{
r| Rr} h
js ubhjp j r~
r r }r (hh ]r
r Rr h
js ubhjp X Ragr
r
r r }r (hh ]r
r Rr h
js ubhjp X
Whitespacer r
r r }r (hh ]r
r Rr h
js ubhjp X Beerr r
r r }r (hh ]r
r Rr h
js ubhjp X Punctuationr r
r r }r¡ (hh ]r¢
r£ Rr¤ h
js ube
r¥ Rr¦ h
hfj j j j j j jv jy j j j
j ubhhj
r§
r¨ r© }rª (hh ]r« hj X Indicatorr¬ r
r® r¯ }r° (hh ]r±
r² Rr³ h
j© uba
r´ Rrµ h
hfj¬ j¯ ube
r¶ Rr· jp js hihlj¾ j ja jk j j hhj j j j© hqhthhj¸ j» X Tokenr¸ hfj¾ jÁ j_ jb ubh#h&hhhhhShVh+h.h[h^hChFh3h6h;h>hhhKhNububX /*r¹ rº hX
r» r¼ hX *r½ r¾ hX Test Boogie rendering
r¿ rÀ hX */rÁ r j X
rà rÄ j jà rÅ jb X constrÆ rÇ j X rÈ rÉ hX NrÊ rË j© X :rÌ rÍ j jÈ rÎ j- X intrÏ rÐ j© X ;rÑ rÒ j jà rÓ j X axiomrÔ rÕ j jÈ rÖ j X 0r× rØ j jÈ rÙ htX <=rÚ rÛ j jÈ rÜ hjÊ rÝ j© jÑ rÞ j jà rß j jà rà j X procedurerá râ j jÈ rã hX foorä rå j© X (ræ rç j© X )rè ré j jÈ rê j© X {rë rì j jà rí j X rî rï j X breakrð rñ j© jÑ rò j jà ró j© X }rô rõ j jà rö h.XI // array to sort as global array, because partition & quicksort have to
r÷ rø j X varrù rú j jÈ rû hX arü rý j© jÌ rþ j jÈ rÿ htX [r r j- X intr r htX ]r r j jÈ r j- X intr r j© jÑ r j jà r
j X varr r j jÈ r
hX originalr r j© jÌ r j jÈ r htj r j- X intr r htj r j jÈ r j- X intr r j© jÑ r j jà r j X varr r j jÈ r hX permr r j© jÌ r j jÈ r! htj r" j- X intr# r$ htj r% j jÈ r& j- X intr' r( j© jÑ r) j jà r* j jà r+ h.X" // Is array a of length N sorted?
r, r- j X functionr. r/ j jÈ r0 hX is_sortedr1 r2 j© jæ r3 hjü r4 j© jÌ r5 j jÈ r6 htj r7 j- X intr8 r9 htj r: j jÈ r; j- X intr< r= j© X ,r> r? j jÈ r@ hX lrA rB j© jÌ rC j jÈ rD j- X intrE rF j© j> rG j jÈ rH hX rrI rJ j© jÌ rK j jÈ rL j- X intrM rN j© jè rO j© jÌ rP j jÈ rQ j- X boolrR rS j jà rT j© jë rU j jà rV j X rW rX j© jæ rY j X forallrZ r[ j jÈ r\ hX jr] r^ j© j> r_ j jÈ r` hX kra rb j© jÌ rc j jÈ rd j- X intre rf j jÈ rg j© jÌ rh j© jÌ ri j jÈ rj hjA rk j jÈ rl htX <=rm rn j jÈ ro hj] rp j jÈ rq htX &&rr rs j jÈ rt hj] ru j jÈ rv htX <rw rx j jÈ ry hja rz j jÈ r{ htX &&r| r} j jÈ r~ hja r j jÈ r htX <=r r j jÈ r hjI r j jÈ r
htX ==>r r j jÈ r hjü r htj r hj] r htj r j jÈ r htX <=r r j jÈ r hjü r htj r hja r htj r j© jè r j jà r j© jô r j jà r j jà r h.X // is range a[l:r] unchanged?
r r j X functionr r j jÈ r hX is_unchangedr r j© jæ r¡ hjü r¢ j© jÌ r£ j jÈ r¤ htj r¥ j- X intr¦ r§ htj r¨ j jÈ r© j- X intrª r« j© j> r¬ j jÈ r hX br® r¯ j© jÌ r° j jÈ r± htj r² j- X intr³ r´ htj rµ j jÈ r¶ j- X intr· r¸ j© j> r¹ j jÈ rº hjA r» j© jÌ r¼ j jÈ r½ j- X intr¾ r¿ j© j> rÀ j jÈ rÁ hjI r j© jÌ rà j jÈ rÄ j- X intrÅ rÆ j© jè rÇ j© jÌ rÈ j jÈ rÉ j- X boolrÊ rË j jÈ rÌ j© jë rÍ j jà rÎ j X rÏ rÐ j© jæ rÑ j X forallrÒ rÓ j jÈ rÔ hX irÕ rÖ j© jÌ r× j jÈ rØ j- X intrÙ rÚ j jÈ rÛ j© jÌ rÜ j© jÌ rÝ j jÈ rÞ hjA rß j jÈ rà htX <=rá râ j jÈ rã hjÕ rä j jÈ rå htX &&ræ rç j jÈ rè hjÕ ré j jÈ rê htX <=rë rì j jÈ rí hjI rî j jÈ rï htX ==>rð rñ j jÈ rò hjü ró htj rô hjÕ rõ htj rö j jÈ r÷ htX =rø rù htjø rú j jÈ rû hj® rü htj rý hjÕ rþ htj rÿ j© jè r j X
r r j© jô r j jà r j jà r j X functionr r j jÈ r hX is_permutationr r
j© jæ r hjü r j© jÌ r
j jÈ r htj r j- X intr r htj r j jÈ r j- X intr r j© j> r j jÈ r hX originalr r j© jÌ r j jÈ r htj r j- X intr r htj r j jÈ r j- X intr! r" j© j> r# j jÈ r$ hX permr% r& j© jÌ r' j jÈ r( htj r) j- X intr* r+ htj r, j jÈ r- j- X intr. r/ j© j> r0 j jÈ r1 hjÊ r2 j© jÌ r3 j jÈ r4 j- X intr5 r6 j© jè r7 j© jÌ r8 j jÈ r9 j- X boolr: r; j jà r< j© jë r= j jà r> j X r? r@ j© jæ rA j X forallrB rC j jÈ rD hja rE j© jÌ rF j jÈ rG j- X intrH rI j jÈ rJ j© jÌ rK j© jÌ rL j jÈ rM j j× rN j jÈ rO htX <=rP rQ j jÈ rR hja rS j jÈ rT htX &&rU rV j jÈ rW hja rX j jÈ rY htjw rZ j jÈ r[ hjÊ r\ j jÈ r] htX ==>r^ r_ j jÈ r` j j× ra j jÈ rb htX <=rc rd j jÈ re hX permrf rg htj rh hja ri htj rj j jÈ rk htX &&rl rm j jÈ rn hX permro rp htj rq hja rr htj rs j jÈ rt htjw ru j jÈ rv hjÊ rw j© jè rx j jÈ ry htX &&rz r{ j jà r| j X r} r~ j© jæ r j X forallr r j jÈ r hja r j© j> r j jÈ r
hj] r j© jÌ r j jÈ r j- X intr r j jÈ r j© jÌ r j© jÌ r j jÈ r j j× r j jÈ r htX <=r r j jÈ r hja r j jÈ r htX &&r r j jÈ r hja r j jÈ r htjw r j jÈ r hj] r j jÈ r htX &&r r j jÈ r¡ hj] r¢ j jÈ r£ htjw r¤ j jÈ r¥ hjÊ r¦ j jÈ r§ htX ==>r¨ r© j jÈ rª hX permr« r¬ htj r hja r® htj r¯ j jÈ r° htX !=r± r² j jÈ r³ hX permr´ rµ htj r¶ hj] r· htj r¸ j© jè r¹ j jÈ rº htX &&r» r¼ j jà r½ j X r¾ r¿ j© jæ rÀ j X forallrÁ r j jÈ rà hja rÄ j© jÌ rÅ j jÈ rÆ j- X intrÇ rÈ j jÈ rÉ j© jÌ rÊ j© jÌ rË j jÈ rÌ j j× rÍ j jÈ rÎ htX <=rÏ rÐ j jÈ rÑ hja rÒ j jÈ rÓ htX &&rÔ rÕ j jÈ rÖ hja r× j jÈ rØ htjw rÙ j jÈ rÚ hjÊ rÛ j jÈ rÜ htX ==>rÝ rÞ j jÈ rß hjü rà htj rá hja râ htj rã j jÈ rä htjø rå htjø ræ j jÈ rç hX originalrè ré htj rê hX permrë rì htj rí hja rî htj rï htj rð j© jè rñ j jà rò j© jô ró j jà rô j jà rõ j X functionrö r÷ j jÈ rø hX countrù rú j© jæ rû hjü rü j© jÌ rý j jÈ rþ htj rÿ j- X intr r htj r j jÈ r j- X intr r j© j> r j jÈ r hX xr r j© jÌ r
j jÈ r j- X intr r
j© j> r j jÈ r hjÊ r j© jÌ r j jÈ r j- X intr r j© jè r j jÈ r hX returnsr r j jÈ r j© jæ r j- X intr r j© jè r j jà r j© jë r j jÈ r j X ifr! r" j jÈ r# hjÊ r$ j jÈ r% htjø r& htjø r' j jÈ r( j j× r) j jÈ r* j X thenr+ r, j jÈ r- j j× r. j jÈ r/ j X elser0 r1 j jÈ r2 j X ifr3 r4 j jÈ r5 hjü r6 htj r7 hjÊ r8 htX -r9 r: j X 1r; r< htj r= j jÈ r> htjø r? htjø r@ j jÈ rA hj rB j jÈ rC j X thenrD rE j jÈ rF hX countrG rH j© jæ rI hjü rJ j© j> rK j jÈ rL hj rM j© j> rN j jÈ rO hjÊ rP j jÈ rQ htj9 rR j jÈ rS j j; rT j© jè rU j jÈ rV htX +rW rX j jÈ rY j j; rZ j jÈ r[ j X elser\ r] j jÈ r^ hX countr_ r` j© jæ ra hjü rb j© j> rc j jÈ rd hj re j© j> rf j jÈ rg hjÊ rh htj9 ri j j; rj j© jè rk j jÈ rl j© jô rm j jà rn j jà ro j jà rp hX /*rq rr hX;
function count(a: [int] int, x: int, N: int) returns (int)
{ if N == 0 then 0 else if a[N-1] == x then count(a, x, N - 1) + 1 else count(a, x, N-1) }
function is_permutation(a: [int] int, b: [int] int, l: int, r: int): bool {
(forall i: int :: l <= i && i <= r ==> count(a, a[i], r+1) == count(b, a[i], r+1))
}
rs rt hX */ru rv j jà rw j jà rx j X procedurery rz j jÈ r{ hX partitionr| r} j© jæ r~ hjA r j© jÌ r j jÈ r j- X intr r j© j> r j jÈ r
hjI r j© jÌ r j jÈ r j- X intr r j© j> r j jÈ r hjÊ r j© jÌ r j jÈ r j- X intr r j© jè r j jÈ r hX returnsr r j jÈ r j© jæ r hX pr r j© jÌ r j jÈ r j- X intr r j© jè r j jà r j X r r¡ j X modifiesr¢ r£ j jÈ r¤ hjü r¥ j© j> r¦ j jÈ r§ hX permr¨ r© j© jÑ rª j jà r« j X r¬ r j X requiresr® r¯ j jÈ r° hjÊ r± j jÈ r² htX >r³ r´ j jÈ rµ j j× r¶ j© jÑ r· j jà r¸ j X r¹ rº j X requiresr» r¼ j jÈ r½ hjA r¾ j jÈ r¿ htX >=rÀ rÁ j jÈ r j j× rà j jÈ rÄ htX &&rÅ rÆ j jÈ rÇ hjA rÈ j jÈ rÉ htjw rÊ j jÈ rË hjI rÌ j jÈ rÍ htX &&rÎ rÏ j jÈ rÐ hjI rÑ j jÈ rÒ htjw rÓ j jÈ rÔ hjÊ rÕ j© jÑ rÖ j jà r× j X rØ rÙ j X requiresrÚ rÛ j jÈ rÜ j© jæ rÝ j© jæ rÞ hjI rß htjW rà j j; rá j© jè râ j jÈ rã htjw rä j jÈ rå hjÊ ræ j© jè rç j jÈ rè htX ==>ré rê j jÈ rë j© jæ rì j X forallrí rî j jÈ rï hja rð j© jÌ rñ j jÈ rò j- X intró rô j jÈ rõ j© jÌ rö j© jÌ r÷ j jÈ rø j© jæ rù hja rú j jÈ rû htX >=rü rý j jÈ rþ hjA rÿ j jÈ r htX &&r r j jÈ r hja r j jÈ r htX <=r r j jÈ r hjI r j© jè r
j jÈ r htX ==>r r
j jÈ r hjü r htj r hja r htj r j jÈ r htX <=r r j jÈ r hjü r htj r hjI r htjW r j j; r htj r j© jè r j© jÑ r j jà r j X r r! j X requiresr" r# j jÈ r$ j© jæ r% j© jæ r& hjA r' htj9 r( j j; r) j© jè r* j jÈ r+ htX >=r, r- j jÈ r. j j× r/ j© jè r0 j jÈ r1 htX ==>r2 r3 j jÈ r4 j© jæ r5 j X forallr6 r7 j jÈ r8 hja r9 j© jÌ r: j jÈ r; j- X intr< r= j jÈ r> j© jÌ r? j© jÌ r@ j jÈ rA j© jæ rB hja rC j jÈ rD htX >=rE rF j jÈ rG hjA rH j jÈ rI htX &&rJ rK j jÈ rL hja rM j jÈ rN htX <=rO rP j jÈ rQ hjI rR j© jè rS j jÈ rT htX ==>rU rV j jÈ rW hjü rX htj rY hja rZ htj r[ j jÈ r\ htj³ r] j jÈ r^ hjü r_ htj r` hjA ra htj9 rb j j; rc htj rd j© jè re j© jÑ rf j jà rg j jà rh j X ri rj hX /*rk rl hX3 a is a permutation of the original array original rm rn hX */ro rp j jà rq j X rr rs j X requiresrt ru j jÈ rv hX is_permutationrw rx j© jæ ry hjü rz j© j> r{ j jÈ r| hX originalr} r~ j© j> r j jÈ r hX permr r j© j> r j jÈ r hjÊ r
j© jè r j© jÑ r j jà r j jà r j X r r j X ensuresr r j jÈ r j© jæ r j X forallr r j jÈ r hja r j© jÌ r j jÈ r j- X intr r j jÈ r j© jÌ r j© jÌ r j jÈ r j© jæ r hja r j jÈ r htX >=r r j jÈ r¡ hjA r¢ j jÈ r£ htX &&r¤ r¥ j X r¦ r§ hja r¨ j jÈ r© htX <=rª r« j jÈ r¬ hj r j jÈ r® j© jè r¯ j jÈ r° htX ==>r± r² j jÈ r³ hjü r´ htj rµ hja r¶ htj r· j jÈ r¸ htX <=r¹ rº j jÈ r» hjü r¼ htj r½ hj r¾ htj r¿ j© jè rÀ j© jÑ rÁ j jà r j X rà rÄ j X ensuresrÅ rÆ j jÈ rÇ j© jæ rÈ j X forallrÉ rÊ j jÈ rË hja rÌ j© jÌ rÍ j jÈ rÎ j- X intrÏ rÐ j jÈ rÑ j© jÌ rÒ j© jÌ rÓ j jÈ rÔ j© jæ rÕ hja rÖ j jÈ r× htj³ rØ j jÈ rÙ hj rÚ j jÈ rÛ htX &&rÜ rÝ j X rÞ rß hja rà j jÈ rá htX <=râ rã j jÈ rä hjI rå j jÈ ræ j© jè rç j jÈ rè htX ==>ré rê j jÈ rë hjü rì htj rí hja rî htj rï j jÈ rð htj³ rñ j jÈ rò hjü ró htj rô hj rõ htj rö j© jè r÷ j© jÑ rø j jà rù j X rú rû j X ensuresrü rý j jÈ rþ hj rÿ j jÈ r htX >=r r j jÈ r hjA r j jÈ r htX &&r r j jÈ r hj r j jÈ r
htX <=r r j jÈ r
hjI r j© jÑ r j jà r j X r r j X ensuresr r j jÈ r hX is_unchangedr r j© jæ r hjü r j© j> r j jÈ r hX oldr r j© jæ r hjü r j© jè r j© j> r! j jÈ r" j j× r# j© j> r$ j jÈ r% hjA r& htj9 r' j j; r( j© jè r) j© jÑ r* j jà r+ j X r, r- j X ensuresr. r/ j jÈ r0 hX is_unchangedr1 r2 j© jæ r3 hjü r4 j© j> r5 j jÈ r6 hX oldr7 r8 j© jæ r9 hjü r: j© jè r; j© j> r< j jÈ r= hjI r> htjW r? j j; r@ j© j> rA j jÈ rB hjÊ rC j© jè rD j© jÑ rE j jà rF j X rG rH j X ensuresrI rJ j jÈ rK j© jæ rL j© jæ rM hjI rN htjW rO j j; rP j© jè rQ j jÈ rR htjw rS j jÈ rT hjÊ rU j© jè rV j jÈ rW htX ==>rX rY j jÈ rZ j© jæ r[ j X forallr\ r] j jÈ r^ hja r_ j© jÌ r` j jÈ ra j- X intrb rc j jÈ rd j© jÌ re j© jÌ rf j jÈ rg j© jæ rh hja ri j jÈ rj htX >=rk rl j jÈ rm hjA rn j jÈ ro htX &&rp rq j jÈ rr hja rs j jÈ rt htX <=ru rv j jÈ rw hjI rx j© jè ry j jÈ rz htX ==>r{ r| j jÈ r} hjü r~ htj r hja r htj r j jÈ r htX <=r r j jÈ r
hjü r htj r hjI r htjW r j j; r htj r j© jè r e(j© jÑ r j jà r j X r r j X ensuresr r j jÈ r j© jæ r j© jæ r hjA r htj9 r j j; r j© jè r j jÈ r htX >=r r j jÈ r j j× r j© jè r j jÈ r htX ==>r¡ r¢ j jÈ r£ j© jæ r¤ j X forallr¥ r¦ j jÈ r§ hja r¨ j© jÌ r© j jÈ rª j- X intr« r¬ j jÈ r j© jÌ r® j© jÌ r¯ j jÈ r° j© jæ r± hja r² j jÈ r³ htX >=r´ rµ j jÈ r¶ hjA r· j jÈ r¸ htX &&r¹ rº j jÈ r» hja r¼ j jÈ r½ htX <=r¾ r¿ j jÈ rÀ hjI rÁ j© jè r j jÈ rà htX ==>rÄ rÅ j jÈ rÆ hjü rÇ htj rÈ hja rÉ htj rÊ j jÈ rË htj³ rÌ j jÈ rÍ hjü rÎ htj rÏ hjA rÐ htj9 rÑ j j; rÒ htj rÓ j© jè rÔ j© jÑ rÕ j jà rÖ j jà r× j X rØ rÙ hX /*rÚ rÛ hX3 a is a permutation of the original array original rÜ rÝ hX */rÞ rß j jà rà j X rá râ j X ensuresrã rä j jÈ rå hX is_permutationræ rç j© jæ rè hjü ré j© j> rê j jÈ rë hX originalrì rí j© j> rî j jÈ rï hX permrð rñ j© j> rò j jÈ ró hjÊ rô j© jè rõ j© jÑ rö j jà r÷ j© jë rø j jà rù j X rú rû j X varrü rý j jÈ rþ hjÕ rÿ j© jÌ r j jÈ r j- X intr r j© jÑ r j jà r j X r r j X varr r j jÈ r
hX svr r j© jÌ r
j jÈ r j- X intr r j© jÑ r j jà r j X r r j X varr r j jÈ r hX pivotr r j© jÌ r j jÈ r j- X intr r j© jÑ r j jà r j X r r! j X varr" r# j jÈ r$ hX tmpr% r& j© jÌ r' j jÈ r( j- X intr) r* j© jÑ r+ j jà r, j jà r- j X r. r/ hjÕ r0 j jÈ r1 htX :=r2 r3 j jÈ r4 hjA r5 j© jÑ r6 j jà r7 j X r8 r9 hX svr: r; j jÈ r< htX :=r= r> j jÈ r? hjA r@ j© jÑ rA j jà rB j X rC rD hX pivotrE rF j jÈ rG htX :=rH rI j jÈ rJ hjü rK htj rL hjI rM htj rN j© jÑ rO j jà rP j jà rQ j X rR rS j X whilerT rU j jÈ rV j© jæ rW hjÕ rX j jÈ rY htjw rZ j jÈ r[ hjI r\ j© jè r] j jà r^ j X r_ r` j X invariantra rb j jÈ rc hjÕ rd j jÈ re htX <=rf rg j jÈ rh hjI ri j jÈ rj htX &&rk rl j jÈ rm hjÕ rn j jÈ ro htX >=rp rq j jÈ rr hjA rs j© jÑ rt j jà ru j X rv rw j X invariantrx ry j jÈ rz hX svr{ r| j jÈ r} htX <=r~ r j jÈ r hjÕ r j jÈ r htX &&r r j jÈ r
hX svr r j jÈ r htX >=r r j jÈ r hjA r j© jÑ r j jà r j X r r j X invariantr r j jÈ r hX pivotr r j jÈ r htjø r htjø r j jÈ r hjü r htj r hjI r htj r j© jÑ r j jà r j X r r¡ j X invariantr¢ r£ j jÈ r¤ j© jæ r¥ j X forallr¦ r§ j jÈ r¨ hja r© j© jÌ rª j jÈ r« j- X intr¬ r j jÈ r® j© jÌ r¯ j© jÌ r° j jÈ r± j© jæ r² hja r³ j jÈ r´ htX >=rµ r¶ j jÈ r· hjA r¸ j jÈ r¹ htX &&rº r» j X r¼ r½ hja r¾ j jÈ r¿ htjw rÀ j jÈ rÁ hX svr rà j© jè rÄ j jÈ rÅ htX ==>rÆ rÇ j jÈ rÈ hjü rÉ htj rÊ hja rË htj rÌ j jÈ rÍ htX <=rÎ rÏ j jÈ rÐ hX oldrÑ rÒ j© jæ rÓ hjü rÔ htj rÕ hjI rÖ htj r× j© jè rØ j© jè rÙ j© jÑ rÚ j jà rÛ j X rÜ rÝ j X invariantrÞ rß j jÈ rà j© jæ rá j X forallrâ rã j jÈ rä hja rå j© jÌ ræ j jÈ rç j- X intrè ré j jÈ rê j© jÌ rë j© jÌ rì j jÈ rí j© jæ rî hja rï j jÈ rð htX >=rñ rò j jÈ ró hX svrô rõ j jÈ rö htX &&r÷ rø j X rù rú hja rû j jÈ rü htjw rý j jÈ rþ hjÕ rÿ j© jè r
j jÈ r
htX ==>r
r
j jÈ r
hjü r
htj r
hja r
htj r
j jÈ r
htj³ r
j jÈ r
hX oldr
r
j© jæ r
hjü r
htj r
hjI r
htj r
j© jè r
j© jè r
j© jÑ r
j jà r
j jà r
j X r
r
hX /*r
r
hX3 a is a permutation of the original array original r
r
hX */r
r
j jà r
j X r!
r"
j X invariantr#
r$
j jÈ r%
hX is_permutationr&
r'
j© jæ r(
hjü r)
j© j> r*
j jÈ r+
hX originalr,
r-
j© j> r.
j jÈ r/
hX permr0
r1
j© j> r2
j jÈ r3
hjÊ r4
j© jè r5
j© jÑ r6
j jà r7
j jà r8
j X r9
r:
j X invariantr;
r<
j jÈ r=
hX is_unchangedr>
r?
j© jæ r@
hjü rA
j© j> rB
j jÈ rC
hX oldrD
rE
j© jæ rF
hjü rG
j© jè rH
j© j> rI
j jÈ rJ
j j× rK
j© j> rL
j jÈ rM
hjA rN
htj9 rO
j j; rP
j© jè rQ
j© jÑ rR
j jà rS
j X rT
rU
j X invariantrV
rW
j jÈ rX
hX is_unchangedrY
rZ
j© jæ r[
hjü r\
j© j> r]
j jÈ r^
hX oldr_
r`
j© jæ ra
hjü rb
j© jè rc
j© j> rd
j jÈ re
hjI rf
htjW rg
j j; rh
j© j> ri
j jÈ rj
hjÊ rk
j© jè rl
j© jÑ rm
j jà rn
j X ro
rp
j X invariantrq
rr
j jÈ rs
j© jæ rt
j© jæ ru
hjI rv
htjW rw
j j; rx
j© jè ry
j jÈ rz
htjw r{
j jÈ r|
hjÊ r}
j© jè r~
j jÈ r
htX ==>r
r
j jÈ r
j© jæ r
j X forallr
r
j jÈ r
hja r
j© jÌ r
j jÈ r
j- X intr
r
j jÈ r
j© jÌ r
j© jÌ r
j jÈ r
j© jæ r
hja r
j jÈ r
htX >=r
r
j jÈ r
hjA r
j jÈ r
htX &&r
r
j jÈ r
hja r
j jÈ r
htX <=r
r
j jÈ r
hjI r
j© jè r¡
j jÈ r¢
htX ==>r£
r¤
j jÈ r¥
hjü r¦
htj r§
hja r¨
htj r©
j jÈ rª
htX <=r«
r¬
j jÈ r
hjü r®
htj r¯
hjI r°
htjW r±
j j; r²
htj r³
j© jè r´
j© jÑ rµ
j jà r¶
j X r·
r¸
j X invariantr¹
rº
j jÈ r»
j© jæ r¼
j© jæ r½
hjA r¾
htj9 r¿
j j; rÀ
j© jè rÁ
j jÈ rÂ
htX >=rÃ
rÄ
j jÈ rÅ
j j× rÆ
j© jè rÇ
j jÈ rÈ
htX ==>rÉ
rÊ
j jÈ rË
j© jæ rÌ
j X forallrÍ
rÎ
j jÈ rÏ
hja rÐ
j© jÌ rÑ
j jÈ rÒ
j- X intrÓ
rÔ
j jÈ rÕ
j© jÌ rÖ
j© jÌ r×
j jÈ rØ
j© jæ rÙ
hja rÚ
j jÈ rÛ
htX >=rÜ
rÝ
j jÈ rÞ
hjA rß
j jÈ rà
htX &&rá
râ
j jÈ rã
hja rä
j jÈ rå
htX <=ræ
rç
j jÈ rè
hjI ré
j© jè rê
j jÈ rë
htX ==>rì
rí
j jÈ rî
hjü rï
htj rð
hja rñ
htj rò
j jÈ ró
htj³ rô
j jÈ rõ
hjü rö
htj r÷
hjA rø
htj9 rù
j j; rú
htj rû
j© jè rü
j© jÑ rý
j jà rþ
j X rÿ
r j© jë r j jà r j X r r j X ifr r j jÈ r j© jæ r j jÈ r hjü r
htj r hjÕ r htj r
j jÈ r htX <=r r j jÈ r hX pivotr r j© jè r j jÈ r j© jë r j jà r j X r r hX tmpr r j jÈ r htX :=r r j jÈ r hjü r htj r! hjÕ r" htj r# j© jÑ r$ j jÈ r% hjü r& htj r' hjÕ r( htj r) j jÈ r* htX :=r+ r, j jÈ r- hjü r. htj r/ hX svr0 r1 htj r2 j© jÑ r3 j jÈ r4 hjü r5 htj r6 hX svr7 r8 htj r9 j jÈ r: htX :=r; r< j jÈ r= hX tmpr> r? j© jÑ r@ j jà rA j X rB rC hX tmprD rE j jÈ rF htX :=rG rH j jÈ rI hX permrJ rK htj rL hjÕ rM htj rN j© jÑ rO j X rP rQ hX permrR rS htj rT hjÕ rU htj rV j jÈ rW htX :=rX rY j jÈ rZ hX permr[ r\ htj r] hX svr^ r_ htj r` j© jÑ ra j X rb rc hX permrd re htj rf hX svrg rh htj ri j jÈ rj htX :=rk rl j jÈ rm hX tmprn ro j© jÑ rp j jà rq j X rr rs hX svrt ru j jÈ rv htX :=rw rx j jÈ ry hX svrz r{ j jÈ r| htjW r} j j; r~ j© jÑ r j jà r j X r r j© jô r j jà r j X r
r hjÕ r j jÈ r htX :=r r j jÈ r hjÕ r j jÈ r htjW r j jÈ r j j; r j© jÑ r j jà r j X r r j© jô r j jà r j jà r j X r r h.X //swap
r r j X r r hX tmpr r j jÈ r htX :=r¡ r¢ j jÈ r£ hjü r¤ htj r¥ hjÕ r¦ htj r§ j© jÑ r¨ j jÈ r© hjü rª htj r« hjÕ r¬ htj r j jÈ r® htX :=r¯ r° j jÈ r± hjü r² htj r³ hX svr´ rµ htj r¶ j© jÑ r· j jÈ r¸ hjü r¹ htj rº hX svr» r¼ htj r½ j jÈ r¾ htX :=r¿ rÀ j jÈ rÁ hX tmpr rà j© jÑ rÄ j jà rÅ j X rÆ rÇ hX tmprÈ rÉ j jÈ rÊ htX :=rË rÌ j jÈ rÍ hX permrÎ rÏ htj rÐ hjÕ rÑ htj rÒ j© jÑ rÓ j X rÔ rÕ hX permrÖ r× htj rØ hjÕ rÙ htj rÚ j jÈ rÛ htX :=rÜ rÝ j jÈ rÞ hX permrß rà htj rá hX svrâ rã htj rä j© jÑ rå j X ræ rç hX permrè ré htj rê hX svrë rì htj rí j jÈ rî htX :=rï rð j jÈ rñ hX tmprò ró j© jÑ rô j jà rõ j jà rö j X r÷ rø hj rù j jÈ rú htX :=rû rü j jÈ rý hX svrþ rÿ j© jÑ r j jà r j© jô r j jà r j jà r j jà r j X procedurer r j jÈ r hX quicksortr r
j© jæ r hjA r j© jÌ r
j jÈ r j- X intr r j© j> r j jÈ r hjI r j© jÌ r j jÈ r j- X intr r j© j> r j jÈ r hjÊ r j© jÌ r j jÈ r j- X intr r j© jè r j jà r j X r! r" j X modifiesr# r$ j jÈ r% hjü r& j© j> r' j jÈ r( hX permr) r* j© jÑ r+ j jà r, j jà r- j X r. r/ j X requiresr0 r1 j jÈ r2 hjÊ r3 j jÈ r4 htj³ r5 j jÈ r6 j j× r7 j© jÑ r8 j jà r9 j X r: r; j X requiresr< r= j jÈ r> hjA r? j jÈ r@ htX >=rA rB j jÈ rC j j× rD j jÈ rE htX &&rF rG j jÈ rH hjA rI j jÈ rJ htjw rK j jÈ rL hjI rM j jÈ rN htX &&rO rP j jÈ rQ hjI rR j jÈ rS htjw rT j jÈ rU hjÊ rV j© jÑ rW j jà rX j X rY rZ j X requiresr[ r\ j jÈ r] j© jæ r^ j© jæ r_ hjI r` htjW ra j j; rb j© jè rc j jÈ rd htjw re j jÈ rf hjÊ rg j© jè rh j jÈ ri htX ==>rj rk j jÈ rl j© jæ rm j X forallrn ro j jÈ rp hja rq j© jÌ rr j jÈ rs j- X intrt ru j jÈ rv j© jÌ rw j© jÌ rx j jÈ ry j© jæ rz hja r{ j jÈ r| htX >=r} r~ j jÈ r hjA r j jÈ r htX &&r r j jÈ r hja r
j jÈ r htX <=r r j jÈ r hjI r j© jè r j jÈ r htX ==>r r j jÈ r hjü r htj r hja r htj r j jÈ r htX <=r r j jÈ r hjü r htj r hjI r htjW r j j; r htj r j© jè r j© jÑ r j jà r j X r¡ r¢ j X requiresr£ r¤ j jÈ r¥ j© jæ r¦ j© jæ r§ hjA r¨ htj9 r© j j; rª j© jè r« j jÈ r¬ htX >=r r® j jÈ r¯ j j× r° j© jè r± j jÈ r² htX ==>r³ r´ j jÈ rµ j© jæ r¶ j X forallr· r¸ j jÈ r¹ hja rº j© jÌ r» j jÈ r¼ j- X intr½ r¾ j jÈ r¿ j© jÌ rÀ j© jÌ rÁ j jÈ r j© jæ rà hja rÄ j jÈ rÅ htX >=rÆ rÇ j jÈ rÈ hjA rÉ j jÈ rÊ htX &&rË rÌ j jÈ rÍ hja rÎ j jÈ rÏ htX <=rÐ rÑ j jÈ rÒ hjI rÓ j© jè rÔ j jÈ rÕ htX ==>rÖ r× j jÈ rØ hjü rÙ htj rÚ hja rÛ htj rÜ j jÈ rÝ htj³ rÞ j jÈ rß hjü rà htj rá hjA râ htj9 rã j j; rä htj rå j© jè ræ j© jÑ rç j jà rè j jà ré j X rê rë hX /*rì rí hX3 a is a permutation of the original array original rî rï hX */rð rñ j jà rò j X ró rô j X requiresrõ rö j jÈ r÷ hX is_permutationrø rù j© jæ rú hjü rû j© j> rü j jÈ rý hX originalrþ rÿ j© j> r
j jÈ r
hX permr
r
j© j> r
j jÈ r
hjÊ r
j© jè r
j© jÑ r
j jà r
j jà r
j X r
r
j X ensuresr
r
j jÈ r
j© jæ r
j© jæ r
hjI r
htjW r
j j; r
j© jè r
j jÈ r
htjw r
j jÈ r
hjÊ r
j© jè r
j jÈ r
htX ==>r
r
j jÈ r
j© jæ r
j X forallr
r!
j jÈ r"
hja r#
j© jÌ r$
j jÈ r%
j- X intr&
r'
j jÈ r(
j© jÌ r)
j© jÌ r*
j jÈ r+
j© jæ r,
hja r-
j jÈ r.
htX >=r/
r0
j jÈ r1
hjA r2
j jÈ r3
htX &&r4
r5
j jÈ r6
hja r7
j jÈ r8
htX <=r9
r:
j jÈ r;
hjI r<
j© jè r=
j jÈ r>
htX ==>r?
r@
j jÈ rA
hjü rB
htj rC
hja rD
htj rE
j jÈ rF
htX <=rG
rH
j jÈ rI
hjü rJ
htj rK
hjI rL
htjW rM
j j; rN
htj rO
j© jè rP
j© jÑ rQ
j jà rR
j X rS
rT
j X ensuresrU
rV
j jÈ rW
j© jæ rX
j© jæ rY
hjA rZ
htj9 r[
j j; r\
j© jè r]
j jÈ r^
htX >=r_
r`
e(j jÈ ra
j j× rb
j© jè rc
j jÈ rd
htX ==>re
rf
j jÈ rg
j© jæ rh
j X forallri
rj
j jÈ rk
hja rl
j© jÌ rm
j jÈ rn
j- X intro
rp
j jÈ rq
j© jÌ rr
j© jÌ rs
j jÈ rt
j© jæ ru
hja rv
j jÈ rw
htX >=rx
ry
j jÈ rz
hjA r{
j jÈ r|
htX &&r}
r~
j jÈ r
hja r
j jÈ r
htX <=r
r
j jÈ r
hjI r
j© jè r
j jÈ r
htX ==>r
r
j jÈ r
hjü r
htj r
hja r
htj r
j jÈ r
htj³ r
j jÈ r
hjü r
htj r
hjA r
htj9 r
j j; r
htj r
j© jè r
j© jÑ r
j jà r
j jà r
j X r
r
j X ensuresr
r
j jÈ r
hX is_unchangedr¡
r¢
j© jæ r£
hjü r¤
j© j> r¥
j jÈ r¦
hX oldr§
r¨
j© jæ r©
hjü rª
j© jè r«
j© j> r¬
j jÈ r
j j× r®
j© j> r¯
j jÈ r°
hjA r±
htj9 r²
j j; r³
j© jè r´
j© jÑ rµ
j jà r¶
j X r·
r¸
j X ensuresr¹
rº
j jÈ r»
hX is_unchangedr¼
r½
j© jæ r¾
hjü r¿
j© j> rÀ
j jÈ rÁ
hX oldrÂ
rÃ
j© jæ rÄ
hjü rÅ
j© jè rÆ
j© j> rÇ
j jÈ rÈ
hjI rÉ
htjW rÊ
j j; rË
j© j> rÌ
j jÈ rÍ
hjÊ rÎ
j© jè rÏ
j© jÑ rÐ
j jà rÑ
j X rÒ
rÓ
j X ensuresrÔ
rÕ
j jÈ rÖ
hX is_sortedr×
rØ
j© jæ rÙ
hjü rÚ
j© j> rÛ
j jÈ rÜ
hjA rÝ
j© j> rÞ
j jÈ rß
hjI rà
j© jè rá
j© jÑ râ
j jà rã
j jà rä
j X rå
ræ
hX /*rç
rè
hX3 a is a permutation of the original array original ré
rê
hX */rë
rì
j jà rí
j X rî
rï
j X ensuresrð
rñ
j jÈ rò
hX is_permutationró
rô
j© jæ rõ
hjü rö
j© j> r÷
j jÈ rø
hX originalrù
rú
j© j> rû
j jÈ rü
hX permrý
rþ
j© j> rÿ
j jÈ r hjÊ r j© jè r j© jÑ r j jà r j© jë r j jà r j X r r j X varr r
j jÈ r hj r j© jÌ r
j jÈ r j- X intr r j© jÑ r j jà r j jà r j X r r j X callr r j jÈ r hj r j jÈ r htX :=r r j jÈ r hX partitionr r j© jæ r hjA r! j© j> r" j jÈ r# hjI r$ j© j> r% j jÈ r& hjÊ r' j© jè r( j© jÑ r) j jà r* j jà r+ j X r, r- j X ifr. r/ j jÈ r0 j© jæ r1 j© jæ r2 hj r3 htj9 r4 j j; r5 j© jè r6 j jÈ r7 htj³ r8 j jÈ r9 hjA r: j© jè r; j jÈ r< j© jë r= j jà r> j X r? r@ j X callrA rB j jÈ rC hX quicksortrD rE j© jæ rF hjA rG j© j> rH j jÈ rI hj rJ htj9 rK j j; rL j© j> rM j jÈ rN hjÊ rO j© jè rP j© jÑ rQ j jà rR j X rS rT j© jô rU j jà rV j jà rW j X rX rY j X ifrZ r[ j jÈ r\ j© jæ r] j© jæ r^ hj r_ htjW r` j j; ra j© jè rb j jÈ rc htjw rd j jÈ re hjI rf j© jè rg j jÈ rh j© jë ri j jà rj j X rk rl j X callrm rn j jÈ ro hX quicksortrp rq j© jæ rr hj rs htjW rt j j; ru j© j> rv j jÈ rw hjI rx j© j> ry j jÈ rz hjÊ r{ j© jè r| j© jÑ r} j jà r~ j X r r j© jô r j jà r j© jô r j jà r e.