+
     Bi2                         ^ RI 5 ^ RIt ! R R]4      t ! R R]4      tR tR tR	 tR
 t	R t
RR ltR tR tR tR tR tR tR tRtRt]R8X  d   ]! 4       t]! 4        R# R# )    )*Nc                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )Blockc                    Wn         \        P                  V R RR7       V P                  4        V P	                  VR,          R^4       V P                  R4       V P                  4        R# )squareF)shapevisibleg      ?blackN)sizeTurtle__init__pu	shapesize	fillcolorst)selfr   s   &&1/usr/lib/python3.14/turtledemo/sorting_animate.pyr   Block.__init__   sK    	He<	tcz3*w	    c                (    V P                  R 4       R# )redNr   r   s   &r   glow
Block.glow   s    ur   c                (    V P                  R 4       R# )r
   Nr   r   s   &r   unglowBlock.unglow   s    wr   c                8    R P                  V P                  4      # )zBlock size: {0})formatr   r   s   &r   __repr__Block.__repr__    s     ''		22r   )r   N)
__name__
__module____qualname____firstlineno__r   r   r   r!   __static_attributes____classdictcell____classdict__s   @r   r   r      s      3 3r   r   c                   D   a  ] tR t^$t o R tR tR tR tR tR t	Rt
V tR# )	Shelfc                     Wn         RV n        R# )   Nij)yx)r   r/   s   &&r   r   Shelf.__init__&   s    r   c                   VP                  4       w  p pV^,          ^,          pVP                  V P                  V,           4       VP                  V P                  ^"\        V 4      ,          ,           4       V P                  V4       R# )   N)r   setyr/   setxr0   lenappend)r   dwidth_y_offsets   &&   r   push
Shelf.push+   s]    kkmq!19r>	tvv !	tvvSY&'Ar   c                p    WR   F-  pVP                  4       w  r4VP                  V^",
          4       K/  	  R # Nposr5   r   ibxposr:   s   &&   r   _close_gap_from_iShelf._close_gap_from_i3   -    bAeegGDFF4"9 r   c                p    WR   F-  pVP                  4       w  r4VP                  V^",           4       K/  	  R # r?   r@   rB   s   &&   r   _open_gap_from_iShelf._open_gap_from_i8   rH   r   c                    \         P                  W4      pVP                  4        VP                  ^4       V P	                  V4       V# )   )listpopr   r4   rF   )r   keyrD   s   && r   rO   	Shelf.pop=   s7    HHT		ss#r   c                R   V P                  V4       \        P                  WV4       VP                  V P                  ^"V,          ,           4       VP                  4       w  p pV^,          ^,          pVP                  V P                  V,           4       VP                  4        R# )"   N)	rJ   rN   insertr5   r0   r   r4   r/   r   )r   rP   rD   r9   r:   r;   s   &&&   r   rT   Shelf.insertD   ss    c"Dq!	tvvS !kkmq!19r>	tvv !	
r   )r0   r/   N)r#   r$   r%   r&   r   r<   rF   rJ   rO   rT   r'   r(   r)   s   @r   r,   r,   $   s(     


 r   r,   c                    \        V 4      p\        ^V4       Fe  pTpV^ 8  d:   W,          P                  W^,
          ,          P                  8  d   V^,
          pK@  V P                  W0P	                  V4      4       Kg  	  R#    Nr6   ranger   rT   rO   )shelflengthrC   holes   &   r   isortr^   N   sc    ZF1fQh58==5?+?+??!8DT99Q<(	 
 r   c                 .   \        V 4      p\        ^ V^,
          4       Fr  pTp\        V^,           V4       F.  pW,          P                  W,          P                  8  g   K,  TpK0  	  W28w  g   KR  V P                  W P	                  V4      4       Kt  	  R# )r   NrY   )r[   r\   jiminrC   s   &    r   ssortrb   W   sp    ZF1fqj!q1uf%Ax}}u{/// & 9LLIIdO, "r   c                 V   W,          pV P                  W P                  V4      4       Tp\        W4       FO  pW,          P                  VP                  8  g   K&  V P                  WPP                  V4      4       V^,           pKQ  	  V P                  WPP                  V4      4       V# )rX   )rT   rO   rZ   r   )r[   leftrightpivot_indexpivotstore_indexrC   s   &&&&   r   	partitionri   a   s    E	LL		+./K48==5::%LLiil3%/K   
LLii./r   c                 ~    W8  d7   Tp\        WW#4      p\        WV^,
          4       \        W^,           V4       R# R# rW   )ri   qsort)r[   rd   re   rf   pivot_new_indexs   &&&  r   rk   rk   l   s;    |#EDe?Q./eq(%0	 r   c                     \        4        \        4        \        \        ^
4      4      p \        P
                  ! V 4       \        V 4       Fs  w  r\        V\        \        4      4       FQ  p\        V,          P                  V^,           8X  g   K(  \        P                  V\        P                  V4      4       KS  	  Ku  	  \        \        4       \        \        ^R7       \        4        R# )
   lineN)disable_keysclearrN   rZ   randomshuffle	enumerater6   sr   rT   rO   	show_textinstructions1instructions2enable_keys)targetrC   tr`   s       r   	randomizer}   s   s    N	G%)_F
NN6&!q#a&!AtyyAE!AEE!H% " " mm!$Mr   c                 Z    ^V,          p\        ^ RV,
          4       \        V RRR7       R# )   center)alignfontNi)Courier   bold)gotowrite)textrp   s   &&r   rw   rw      s&    9D4$;	$h%<=r   c                      \        4        \        4        \        R 4       \        \        4       \        4        \        \
        4       \        \        ^R7       \        4        R# )zSelection Sortro   N)rq   rr   rw   rb   rv   rx   ry   rz    r   r   start_ssortr      8    N	G	!H	Gmm!$Mr   c                      \        4        \        4        \        R 4       \        \        4       \        4        \        \
        4       \        \        ^R7       \        4        R# )zInsertion Sortro   N)rq   rr   rw   r^   rv   rx   ry   rz   r   r   r   start_isortr      r   r   c                      \        4        \        4        \        R 4       \        \        ^ \        \        4      ^,
          4       \        4        \        \        4       \        \        ^R7       \        4        R# )	Quicksortro   N)	rq   rr   rw   rk   rv   r6   rx   ry   rz   r   r   r   start_qsortr      sD    N	Gk	!QA
	Gmm!$Mr   c                  n    \        R4      sRp V  F!  p\        P                  \        V4      4       K#  	  R# )rM   Ni8)
   r3      	   rX      rn            )r,   rv   r<   r   )valsrC   s     r   
init_shelfr      s*    dA*D	uQx r   c                  f    \        R R4       \        R R4       \        R R4       \        R R4       R # )Nrv   rC   qr)onkeyr   r   r   rq   rq      s*    	$	$	$	$r   c                      \        \        R 4       \        \        R4       \        \        R4       \        \        R4       \        \
        R4       R# )rC   rv   r   r   spaceN)r   r   r   r   r}   byer   r   r   rz   rz      s4    	+s	+s	+s	)S	#wr   c                      \        4       P                  4        \        4        \        4        \	        4        \        \        4       \        \        ^R7       \        4        \        4        R# )rX   ro   	EVENTLOOP)
	getscreenclearscreenhtpenupr   rw   rx   ry   rz   listenr   r   r   mainr      s=    KD%'Lmm!$M
Hr   zApress i for insertion sort, s for selection sort, q for quicksortz spacebar to quit, r to randomize__main__)r   )turtlers   r   r   rN   r,   r^   rb   ri   rk   r}   rw   r   r   r   r   rq   rz   r   rx   ry   r#   msgmainloopr   r   r   <module>r      s     3F 3((D (T-	1>
 T2Z
&CJ r   