the art of computer programming a draft of section

66

Upload: vuthu

Post on 11-Feb-2017

225 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

�����

��� ��� ��

������ ����� ��

���������� ��

� ����� �� ���� �� ��������

������� �� ��� ������ ���

������ �� ��� �������� ���� ��

��������������

Page 2: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

��������� �� �����������

�������� ���� ��������� ����������� ������������������������� ������ ����� ��������� �� � ���� �� ��� ������� ����

��� ��� ��������� ����������� ����������������������� �� ����������� � ��� ������ �� ������ ��� ���� ���������� ������� �� ������� ���� ��������� ��� �� ���� � ��� �������� �� ������� ��

��� ��� ��������� ����������� ��������������������������� �� ����������� ������� � ��� ���� ��� ���� �� ����

�������� � ���� �� �����!"�����

�� ������ �����#��� $ ���� � ���� � ������� ��� �� ����� ��� ����� �� � ������#��������� � ������������ �� ��� ���� � �� ��� ������ �������� ��������� ���������� �������� � ��������� ���� � ��� ���� ����� � ��� � �������� ��������� ��� ��� ������� %�� ��� �� ��� � ����� ������ ���� �� ������� &���������' ���

(���� �������� &��#���� )�'� )� * �� ���+

Page 3: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

������������������ �� �������

�������

� ������� �� ���� �� � �����

�� ��� ��� ����� �� ���� �� � ��� �� �

��� �� ��� � �� �� ����� ��� � ���� �� ����� ��

� ������� ������� ����������� ������

���� ����� �������� ��� ������ ���� ��� ���� ����� �� ������ �� ����� �� �� ����� ���� ���� ��� �� � ����� ��� ���� �������� ��� ���� ������� ���� ���� � ��� ��� � �� � ��� ������� ������� �� �� ��� ������� ���������� ����� ����� ����� ��� ����� ���� ��� ��� � ������ � ������� ���� ���� ��� ��� ������ � ��� ����� ������ ������� ���� ������ ������ ��� ���� ������ �� ������� � �� ��� ���������� � �� ���� � !� ��� "��� �� ��� ���� � ���� ��� ��������� #�� ����� ���� �$������� �� ������ ��� ��� �����%���� � ���� �� ������� ��������� � ���������

&���� ���� ������� � ���� ���� �� ��� ���� ���� �� ��� �� �� ������������ �������� ���� ��� �� �� ���������� �� ������ ��� ������ ���� ��� ��� �� �� ���� �� ���� ���������� ��� ������������� �� � �� �� ����� '�� ����� � �� �� ����� � ������ ���� �� ���� �������� �� ������ �� ��� �� ���� ��� �������� � ��� ��� �� �� �� ���� ����� ��� ����������� ��� ��������

�� ��� ��� ������ �� �������� ���� �� (������ )�!� �! � � ���� ��� �������� ����������� � �������� *����� ) �� ������� � � ���� �� ���� +���� ��� ���� ,#� ,'� ��� ,*-� �������� ���� ��� �� � �� ����� ��� ���� �� �� ����� ���� � ���� ����� � ���� ������ ���� �������� �� ���� ���� ������ ���������� ����� �� ��� (����� &���'��� +�� ����� � �� �� ���������� ����� ��-� ���� ����� (������ )� � ����� ��� � ���� ��� ����� � ������������� ������� +� ����� ����� ./ ����� ����� ���� ���0��� �� 1))� ��� ���������� ���� ��������� �������2 ������� � ���� ������� �� ��� � ���� � ����� ������ ���� � ��� ��� �� ���� � ��� ��� � ����� �� � ��� ���� ������- (������ )�! �� ����� ��������� � ������� ������ ��� �� ������ ���� (������)�!� 3 &�������� '���� *���������� 4������5������ �� ���� ������ ����(������ )�!� � � 6&�������� � �$��� ���7 +8����� � ��� ������ ���� �� ���� ����� � ���� ����� �� (������ )�!� � � � ��� � ����� �� ���� �� � �� 4�$9����� � !#�- ���� ���� ��� ����� � ��� ���� �������� � ���� ���� ��� (������)�!� �!3 6&�������� � ������������7 ���� �� ���� (������ )�!� �" +�����������������-� ���� (������ )�!�! �� ��� ���� ����������� �� ����� � #���� �� �� �� ��� � � ���� �� 2 �� ��� ��� � ��� ����� *����� ) �� ����� ���������� ������ �� ��� ����� ������� ���� �� ����� �� ���� ���

���

Page 4: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

�� �������

���������

:��� ��� ������� � �� � ����� � ���������� ��������� ���� ��� �� ���������� � ���� ���� ���� �� (������� �!�1� �"�"� !�!�"� !�"�,�!� "�,�!� ,� � ;� � �;� �!� ;� �,� ;�!� � ;�!�!� ;�"� � ��� .� � ��� ��� ���� �� ����� ���� � �� �������� � ���� �� ��� ���� �������� ������ �� (������ �"� � � 9����� � �� ����� � �� ���� �� ��� ���� �� � �� ���������� �� � ���� ��������� ���� ��������� ��� ������� � ���� � �� �� �� � �� �� ���� ������ ���� �� ���� � ��� ������ �� �� ������� � ���� �� ���� ! ��������� ���� ������5�� ������ � ���5� ��� �� � ������� %���� � ��� � ��� ���������� ������ ���� �������� �� � ���

(��� � ��� ������ �������� �� ���� �� ��� ���� � �� ���� ����� � ������� �� ��� �� �� � ������� �� ��� ���� �� ��� ��� � 6����������7 ���� ������������� ����� 4 ���� ���� � ����� �� �� ��� �������� ���� ���� � ����� �������� ��� ��� +���� ���� ���� �� ��� ,. � �����-� ���� � �������� ) ��� /12 ���� � �� ��� ���� � ����� ��������� ���� ��� %�������� �� ��� �������� �������� !<� ;<� ."� .)� <1� //� /.� ��� !� #� ����� ��� ��� ��� ����=4 ���� �� �� ���� � ��� ���� � � �� ����� �� ��� � ����� ��������� %���������#�� � ����� � �� �� ����� �� ����� ����� ��� ��� �� ���� ������ �� ��� ����� �� ��� ����� � ���� ���� �� �� �����

� ����� � ���� ��� �� � � �� ���� ������ �� ���� �������� ���� � ������ �� � ��� ������� ���� ������ � � ������ � ����� ��� �� ��� ����� � ���������� ���� � ���� ���� ��� ����� �� ������ ��� ���� � ����� ��� �� �� %��������� 6����7 ���� ��� 0��� ������� �� �� 6� ������7 ������ � ���� �� �� � ��� ���� ��� � ���� � ���� �������� ���� ������ �� ��� ����� ���� ���������� .� )� !/� !;� , � ;;� ./� .;� ..� .)� .1� )/� ).� <1� 11� /,� ����� /.�

� ��� ����� � ��� � ������ �� � >!�;. � ���� �� �� ���� ��� ���� �� ����� ������ �� ��� ������ ���� �� �� ����������� � �������� � � �������� ���� ���� ���� �� �� � ����� ���� � ���� �� ��� �� ��� ������ #�� �� ��� ������������ � ����������� �� ��� ���� �� ���� "!�� ����� +9�������� ���� ��� � ����� �� ����� �� �� �������� �� ����� � ���� ��� ���� ������ � �� ������� � ��� ������ �� ��� ������ ��� ���� �� ��� ������� ����3�-

?���� ������@

��������� �������� A� :� B��� �������� ����

Page 5: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� �����

������������ �!�"��!#"$�%���"$ ��

��� �� ��� �� ��� �� ��� ���

�� ��� ��� �� �� ��� �� ����

��� �� �� ��� ��� �� ��� ���

�� ��� �� ��� �� ��� �� ����

�� �� ��� �� ��� �� ��� ����

� � � � ��� �� ��� �� ��� �� ��� ���

� ������� �� ������ �� ��� ����� ������

� � ������� �� �� � � � ���� ������ �� ������ � ����� � ���� ����

�� ����� �� ������ ��������� ! �� �� � � � �� �� �� �� �����

�� � ����� ���� � �� � � �� ���� ���� ���� ������ ���������

���"� �� ���� ��� ��� ���� �� � ��������� �# � �� ���

�� ���� � �� ����$���% & ������ ���� � C � ��� '��� �� ������ �� � �� ��� ���� (����� ��

���� ��# � �� �� � �������� �� �������� �� ���%

)� � ���� ��� ������� � � � � �� � � �� ����$ �� ��� ����� �� �

� �� �� ������ ������

�������� �������� ���������� #�� �$��� ��� ��� ���� ���� ��$������ ���� �� ��� � ���������� ���� ��� � ����������� ��������� �� ������� � �������� � ���������� � ���� ����� ��� � �� ������ D��� ��E�������� ���� ���� ������� �� �� �� ���� ��� ��� �� ���� � ���� �� ���� ��E����� ������� ���� ���� ��� ����� � �������� �� � ������@ F� �� ����� ������� �������� ���������� �������� �� ���� �������� ��������� ���� � � ������ ������ ���� �� ���� ���� � ��� G���� �3

� ������ � +�� ��!���"� ���������� !��������-� &���� � ��%����� � �� ������ �&�' � � � ��� ������ � ����� �� ����

�& � �' � � � � � ��� +�-

���� � ������ �������� � ����������� � ��&� �'� � � � � ���� �������� ���� �� ����������� ���� +9� ����� �� ��� ����������� � � � !� !� "� ��

!!"� !"!� "!!� ! !"� ! "!� !! "� !!" � !" !� !"! � " !!� "! !� "!! �

����� ������������ ��- #� ���� ��� � ����� �( �� ������� �� �� ������ ������������2 �( ���� �� ����� � ��� ���� ��� ����� � ����� ���

��� H������I ����� ��� ���������� �&�' � � � ���

Page 6: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

! �� �������� ������� � ����� )�!� �!

�)��"���*�%�+��"%!#"$�%���"$ ��$$�����,�$�� "��$���%�-

��� H9��� ��I (�� � � � � � � �� � ��.&� ������� � �� ������� � ���� �� � ��.&� �������� ��� � ������ � � J /� +#� ���� ����� � �� ��� ��� ����������� ���� ���� �� ���� � ���� ������� � ����������� ��������� �����& � � � �� � ������ ��� ������������ � ���� ���������� �� ������� ����� �� � �� �-

��� H������� �� �I (�� � �� � �� � ��� ������� �� ������� � ���� �� � ������� ���������� �� ��� +(���� ��.& � � � � � ��� � ����� �� �� ������ ��� � ����� ����� ���� �� ���� ��� ��������� � � �� �& � � � ���& �� ������������ '��� ��� ���������� �� ��� ��.& � � � � � ���& � �� �� ���.& � � � � � ��2 ��� ��� ����������� �� ���� ��.& � � � � � ���& � �� �� � ��.& � � � � � ���-

��� H8����� ��.& � � � ���I (�� � � � C ��� � �� ����� � � � � ������������ ��� ��� � � � C � � � � ��� ����� ���� � � � 8���� �� K �

���� � ������ ���� ���� �� ���� �� ��� <�� ������� �� *� 9� ?��������������� �� �������� ������ � �� ������ � ���� ��� ��� ������� �� *� 9�8L����� +K���M��3 )<,-� � ��N� ���� ��� �� ��� ���� �%���� � ���������� ��������� ��� ����������� ����� �� ����� K! ��� K" ��� ��� ��� �� �����

�� ����� � ��� ����������� �������� � ��� ����������� ������ �& � � � ���� �������� � �� � ����$���� �������3

- 9��� ��� ����� � ���� ���� �� ��� �� ���������!- ������� �� �� ��� ��� ��� ����� � �������"- 9��� ��� ������������ � ���� ��� �� ������ ��� ��� �& � � � �� �� � ���� ���

�������

# ������ K � ��� ���� ����� ������� �� ��� ���� � ���������� ����������0��� �� # ������ )�!� � D � ���� �� �� ��� ���� � �$��� � ���������2 �� �� ��� ������� ���� ��������� ���� �� �� ������� ���� ����� � ����������� �������� O����� ���� �� ���� ��.& � � � � � �� �� ��� ��������� � ���� K,������� ��� ��� ���������� ��������� ���� ��� ����� ���� �& � � � �� ���& � � � ���� � � � ��.&� ��� ���� K, ������� �� �� ����� +�� �-�!� ������������

�� �������� ���� K! ���� � J � � �� � ��� ���� ���� ��� � ������ ����������� ������� ����� � �@�! � ��� �@ ����������� ���� ���& � ��� ������# ������ K ��� �� ������� �� �� ������M��� ���� ������ ����� ������� �������� ���������� � ��� ���� ������� +(�� ������� �- (��� � �� ��� ������ ������� � � �� � �� �� � ��@ ���� ��� ��� �� ��������2 ����� ��� ���� �� ����� K!NK, ���� � �� ��� ���� :������ . ��� �M�� ��� ������ ���� �� ����� � ����������� # ������ K �� ������� � ������ ���� ���� �%�� � ������ �� ��������� ��� ���� �� ��� ����� ���� ��� ���� ���� ����� �� �� ��� �� �������&� �'� � � � � ����

������ ����������� F� ��� �� (������ )�!� � ���� &�� ����� �� ��$���������� � ��������� �$��� ��� ��� ���� � ������������� ��� � ���� ������ �� ������� ������������ ��� ���� ��� ������ � ������ �� � ������������ �� ���������� ��0����� � ������� ��� �� ���� �� *����� ; ���� ������������� ��� �� ����� ���� ��� � �� ���� � ������ � ��%����� � ����

Page 7: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� "

*�**! ��� �!�"���� "!���"�� ������ "!���"�� $"$�"���/ *"��/ $��"�)�"���"�)�"�� ��*!0$�� ��/ $�� � "#� ��"$�

������������ +9� ����� �� # ������ ;�!�!' ���� �� ���� ����- ?���� �� ����� ������� ��� ������ ��� ������ ����������� �� ������� ���� � � �������� ��� ��� ���� ���������� ��������� ���� � ��0����� � �������

# ����� %������� ��� �����3 �� �� ������ � �� �� ������ ��� ������������ � ����� �� ����� �� ���� � ��� ���� �� � ��� ��0����� � ������ ������ � ������ ���� ����= � ��� ��� ���� ����� ���� �� ��������� � ����������� �� ���� �� ���� � ��� ����� ������� �� �� �� � ���� �� �� �� ��� ��� �E��� ��� �������� ������� � �� ������� �� ����� � ��� ��� �& � � � �� ���� �����

# ��� ���� ��� �� ����� ��� ������� � ������� �� ����� � ���� ��� ����� &��$ ��� ��%������ 9� ����� �� ��� ��� ����������� � � � � !� !� �� ���$������ �� ���� ���� �� ��� � ����� ��� �� ��0����� �����������3

!! ! !! !

!! ! ! !! 2 + -

���� ���� ��� �� ?��� ������ �����

'�� ���� ��� �������� ��� ���� ����������� � � ���� � ������� ��� ����� ���� ���� �� ���� ����3 # ���� � � ������ ����� �� ������ � �� �������� �@ ����������� �� ������ 0��� �@ � ��0����� ������������ 9�������������� ���� ���������� ����� �� ��� ������� ������ �� �� ���� � ?��� ������������ ��� ����� �� &�� ����� �����

��� ���� �� �� ���� ���� � ��%����� � � � � � � � � � � ��� �� ����� �������� � ���� ���� ���������� �� � ����� 9� ����� �� � � J , ��� ��%�����+ !"� "!� " !� "! � !" � ! "- ���� �� ��� �� ���� � ��� ���

!", "!, " !, "! , !" , ! ", !," ",! " ,! "!, !", ! ," ,!" ,"! ", ! ",! !," !, ", !" , "! ," ! ,"! ,!" ,! "

+�-

���� , �� ������� �� � �� ������ � ���������� O�� �� ������ ��� ��������%����� �� ������ �������� �� ��� ��� �� ���� ������ �� ��� ������� ����$���� �� ��� ����� � � � � ������ �� ��� ���3 + !",� !,"� ,!"� , !"� , "!� ,"!� ",!� "!,� " !,� " ,!� � � � � ! ,"� ! ",-�

�� (������ ;� � �� ������� ��� ��������� � � ����������� ���� � ��� ����� � ������ +��� �������� � ��0�����- ���� �� ��� � ���� :��� ����������� ��0����� � ������ ������� ��� ���� ����� � ��������� �� � � �� ���� ������ ������� ��� ��$�� �� �������� ��� � �& � � � �� � ������� ;� � N)� ���� �� ����� ����� � � ������ ���� �� ��� ���� � � ���� �� ��� ���� �� �� ��� ������� ����������� �� +�- ���� ��� � ����� �������� ��� ��3

//// // / //!/ / !/ / / / ///// // //! / ! / / / ///! // ! //!! / !! / ! / /!///" // " //!" / !" / " / /"

+�-

#�� � �� ��� ����� �� ���� � ������ � ���� ��� �� �� ����� �� ������������ � ��� �G����� &�� ���� � ����� ������ + � !� "� ,-� �� �� :%�� +��-N+��-

Page 8: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

, �� �������� ������� � ����� )�!� �!

�",1����!�"� $���%�...�� *"�% 2��/3�"%������/��"�����% �"�%"�%��$14������ ������������������

� (������ )�!� � � ��� ���� ������ �� �� � � �� �� ������� �� :� F� A�0����H��� ��������� � + 1).-� ";)N";1I� ��� �� ���� �� �� ��� � ����� ��� �����3

� ������ � +#��� �"��!� -� &���� � ��%����� �&�' � � � �� � � ��������� ������� ���� � ������ �������� � � ���� ����������� �� ������� � ����$�������� ��0����� ����� �� ���� �� ���� ��� ��� �&�' � � � ��� ����� ����������������� �� �������� ������ ������ ������ � ��%������ � ������� ���� ����

/ � �� � � � � � � �� +�-

#����� ��� �&�' � � � �� ������ ��� ��������� �� ����� ��� ������ �� �������

��� H������ �M��I (�� �� � / ��� �� � � � � � ��

��� H������I ����� ��� ���������� �&�' � � � ���

��� H4���� � �������I (�� � � � ��� �� /� +��� � ����� ����� ����������� ��������� � � ����� �� �� ����� �� ������� �������� +�-2 ����� � ��� ��� ����� � ������� � � ���� ���� �� J � � �-

��� H8���� �� ������=I (�� � � �� C �� � � � � /� �� �� 4)2 � � J �� �� �� 4.�

��� H*������I ���������� �����.� ����.�� ���� ��� �� � � ��� ���� �� 4!�

��� H������� ��I �������� � � J 2 �������� ��� �� �C �

��� H(����� ���������I (�� �� � ��� � � � � � � ��� �� ���� �� 4,�

���� �������� ����� � �� � ���� � � � � � ��������� �� )��$������:�� ���� ���� �� ����� ����� ��� �� ����� ������ � ������ � ��� � �� ��� � ������ � ������������ ���� �� �� # ������ 4 ��� ������ � ����

�"��!� � 9���� <+�- � ������� ��� 6*������� 9���$:�����7 �� ���� ���� �� ��� ��%����� � ,< ����������� �� ; �� � ���� ��� ���� ���� ����� �� � .//�� ���� ��� � ���$������ ������ � ���� �� ��� �� ������� � ;@ J !/ ������� ������ ��� ������ � ������ � # ������ 4 ��� ���� ����� ��� ��������� �� 4��� D���� ��� �� ��� '�� ���� K����� ������ ����� .;"��� ��������� �� :���� D��� �� ��� ������� �� ��� �� ����� �������

+ 1" -� !1N"/� (��� � �������� � ����� ���� �� �� ����������� ��� �������������� � �� ..< ��� ��� ����� �� ���� ���� ������ �� 8����� A���������� 9����� (������� ������� ��� ��� ./ ����� �� � ����� �� ���������� � � ����������� ������ �� �� � J " �� ��� ���� � ������ � ��� ��

��� !"#$% &'!()*%"$+(� �� ��� � ��

�� �� � � �� ,%�- ��� �� ��.$ � ��# �� �* ��� ����

� ��� &'!()*%"$+(� �� �/.#!%#� �� �%0%.*+/.#!%# �.# (1%.()�

�� �� ���� �� ���+� ��* �� � �� �".$ �+�.$%2 �# ".3."(/��

� � � )� ��� , ���� �� �1%.() 4'/! 2%0%!�- �+�.$%2�

�� �".$".$ �� ������ �� �� �� , �� ��� � �� �/.(�

�� �� ��� �� �5(!%�� , ���*

�� �/.( ��# �� �� +/.(2 �� �� ���� ���������� � � � *��� �� �� �5(!%�� , ��� �$ � �+�.$%

# � ��� �� �/.( ��� � � �� � � ���� �� ��

� ������� �.# ������6 ����������� ������

Page 9: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� ;

*!!"�%"�%�����" ���*!��"!�����"������" ���*!���� �� ���*!�������� � ����"��)� � ����"���"%� � � � ����"���!����"�% %���"�)�"���

������������

&�' ,�� ��������� -����.�����

&�' /���� ��������

&' 0�������� 1 �����

&�' ������� 1 �����

���� ��� - � �������� ��� � ���� %#� � ���������� )������� �� .������� /������ &�' �������� � ������� /�

'����� �� ������ ����������� ���� ���� �� �� ���� �� ��� ���� ������������� �� ����� ��� � ��� ���� � �� � ������ � ���� ���� ������� �� 9������ �� ���� ������� ��� ������ �� 9��� <+�- ����� �� &������ A��� ���6��� ���� ��� ���� ��������� 4�� ���� ��� ��� ��������� �� �� ��� �� ����� �7 H����������� ���� 1;I� (��� ����� ������� �� ��� ���������� ����# ������ 4 �� � ������ � ����������� ����������� ��� ���� �� ��� ���� �� ������� ��� ��������� �� �� ��� ��� ��� �� ���� ���� ��������� �������� ��� ��� �� ������ F� &� F� ����� ����� ����� ������� + 1.;-2 ���� �� #� �� F����� ��� ��� + 11.-� )) N))<�

?� 9� ����� ��� ����� ��� ��� ������� ��� ���������� � � ��� ��������� ���� � + 1.!-� ,",N,";� ��� � ������ �� %���� ������� ������� � ���� ���� ����� ���� �� �� ������� .� ������� �� ��� � ���� � ����������� ���������� ������� ����� ����� 4. ��� 4)� '� �������� # ������ K ��0��� ������� ���� �� � ����� �� � ��� �����

��� ��� ���� # ������ 4 ���� ����� � ��� ���������� �� ����� ����� ������� ����������� �� �������� �� � ������ � ���� ��� ��� +��� ������� ;� � N "-� ������ �� ��� ������� � ��� ���� ����������� �� ���� � ������������ ��� ����� �� ���� ��� � ��� � ��� �� ���� �� ���� �� ���� ���� � ��� ��������� ����� � ���������� �& C � � �C ��� �� �� ���

D��� ������ ���� �� ������� ��� ���� ����������� ������� �� ��� ������ ����� �� ������� �� ������ ��� ����� � # ������ 4 ���� ����� F� ������� � ����� � ��� � ������ � ����������� ����� ��� � ����� ������3

� ������ � +#��� �"��!� ���� ��� -� ���� � ������ �������� � ��� � �H I��H!I� � � � � �H�@ � I ���� ���� ��� ������� � # ������ 4 �� �%���� ��� �� ������������� ����������� ��5�6 ��5�6.& � � � � �@� F� ������ ���� � � !�

��� H������ �M��I (�� � � �@� �� ��!� �H�I� � ��� �� !�

Page 10: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

. �� �������� ������� � ����� )�!� �!

����/�����!��� �"$�.$/���"�� 7��"8�����"�!���"�") �!��� �"$��"%���� � �� �!��� �"$

��� HK��� �� ��I �������� � � J �� P������� ��� � � � C � � � ������� � � /� +F� �������� ��� ��������� � J �@��@�-

��� H?��� �����I (�� � � �C � ��� � � �� � ���� ��� � � /� ��� �H�I� ��� � � � � ��� � � � C �� ���� � J /�

��� HPE����I (�� �H�I� �H�I C ��� � � � C ��

��� H?��� ���I F�� � � � �� � ��� � � �C � �H�I� �� ��� � � �C�� 8������ �" � � � � � �������� ���� �� �!�

9� ����� �� � � J , �� ��� ��� ��� � +�H I� �H!I� � � � � �H!"I- J +"� !� � "� � !� "� �"� !� � "� � !� "� � "� !� � "� � !� "-�

� �������� O�� ���� ������� � ���� � ���� � ��MM � �� ����� ������������� ���� 3 ?�� ��� ��� ������

��

C � �

� ��

+�-

������� � ����� ���� � ���� ���� ������ � � ��E���� ������ �����=H?� :� A������� ����� � + 1!,-� 1)� ! ,�I (��� ��MM �� �� ���� �� ��6� ����������7 � ��� ������ �� Q� #� ?� ?���� H���� �� �� +������3!) P����� 1;;-� !)I2 ������ ���� 6����������7 ��� � �� ���� ��������� ��(� ����%���� H����� � +D�� 1" -� ;/I�

��� � ����� � �������� +�- ��� ���� � �� �� ��� �� ���� +��� ������� ! -� '�� ���� ������� �� ���� �� ��� ���� � ��� ��� � ���� ������ � ���������� ����� ����� ��� �� ���� ��� � ��� � ����� ��� ���� ��M��� � �� ������� ���� ����� ���� ���� �� ��������� � ������� �� �� ��� � ����������� � ���������� ����� � ����� ������� ������ ����� ����������� ��� � � ����� ����H# ������� ����� � �� ���� � ��������� ��� ��� ����� �� Q��� '��� � ��������� ���� ���� �� . +O������NA������ 1)<-� /N "�I

F� ����� �� �� ���� �� ������ � ���� � ��� ������� �������� � ����������� ����� � ��� ��� ��� �� � ���� ���� � ���� ��� +�- ��� � �� ���� ����� �� ���

�� ���C �� ���C �� �� J ��� C �����

:%���� ��� �� �� ���� �� �� �� ��MM �� ���� ��

!+�� ���- C �� ��� ��� � ���� J /� +�-

���� � ��� � ���� ���� ������ ��������� �� ����� ��� ��� ��� �� �� ������M�� �� ������������ �������� ������ ������ � ��� ��E���� ������ :��� ������ ���� � ��� �� ��� � 6��������7 �������� �� ������������ � ���� ������� / � ��� �����2 � ����� �� ��� �������� � � �� +�- ��

!+/ // /- C / ///� // /� //////�

���� � ! / /� � �� ������ � ������ ��� ����� + � !� � � � � /- �� ��� �����+�� �� � �� �� �� �� �� � �-� ��� ��������� ��������� ����������� �� +�- ��

�& J ! ////� �' J ! / /� �9 J �)1/ � �: J ! /� �; J �11<��< J � //� �= J � / /� �> J � //� �? J � /////� �&( J /�

+�-

Page 11: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� )

-��,�$�� "��$���%��� �!��� �"$�

��� ��� �� ���� �� �� ��� � ����������� �& � � � �&( � �/� � � � � � 1� ���� ����

� � � J

&(��@&

���� J /� +�-

���� � �� �� � ���� ���������� ������� ��� ������ �� � ��������� ���� � ������� M�� �� � ������ ������ 9� ����� �� ��� ����

)" .C /<!"

/< "1

���;)"

C /.,)

/.")<

���.;!,

C /)";

/)!;1

���!< )

C /".<

/" <;

��� ������� ����� �� ��� ��������� �� �� �� �� �� ������ � +�-� �� ����� ���� �� � ��� � � ��� ����� ���� ���� �� ���� ����

�� J / � � � � � 2 +��-

��� ��� � ����������� �� +�- ��� +�- �� � � )� 1��P�� ��� �� ���� � � ��� � � �������� � ��������� �� �� ���� �� �����

# ������ � �� ����� � ��� � � /@� ���������� �H�I� ����� � ���� ��� �������� �� � �������� ��%����� +�&� � � � � �&(- ��� � ���$ ���� ��� � � �� ������������� � ��� � �� ������ �� � ���3

��� H������ �M��I (�� �&�' � � � �&( � / � � �1� � ��&(

�@&+� � -�� � � � � ���� � ��.& � �� � � � � /�

��� H�����I � � J / ��� � +��- �� ��� ������ ��� �� ����� �& � � � �&(�

��� H(����I (��� � � J /@� P������� ��� � � �H�I� � � � � +��.& � ��-� ���.& �� � � � � C � ��� ���� �� #!�

(��� #" �� 0������� �� ��� ��� ���� �������� �� ���� ��.& ���� � �������� � � ��� +��.& � ��-+��.& � ��-� :��� ������ /@ �� "�.!<�<//� � �� � ��� ��������� ��������� �� ���� #" �� �� ���� � ���� ��� ��� � 0�� ����� �� � � ������� � ������ �� � ����� ��������

#� � �������� �� ���� �� �� ���� � �� ��� � ���%�� �� ������ R�������� �+�- �� ��� ���2 ��� ����������� ).,</!;"1 ��� ";,.!< 1)/ ���� �� �� +�- ���+��-� ����� �� ���� ����

).,)<C ).,)<C ).,/ J !;). C ".</!/

���";,.;!C ";,.;!C ";,.< J 1;, C ),!< <�

9������� �< J �> �� +�-� �� �� ��� ������ ��� ��� �� ������ �� ��������������� ������ �������� �� � ��� ��

P� ��� ���� ���� +�- ���� ��� ��� ������ �� ���� �������� �� ������ ��E���� ����������� ���� �� �� ��� ��� ����� �� ���� +�- ���� ��� �� ������ �������� ������ ����� �� �� ��� �� �� � �� ����� �� ����� ��� �������������� �? J �&( J /� �� ����� � �� � �������� ���� � �������� ����� �� ���� /�� ����� ��������� �.& J � � � J �&( J /� ��� ���� � ��� �� �������� �� ���� + /��-@ ����� �� ��� �� ������ ����� ���� �.& � � � � � �&(�

Page 12: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

< �� �������� ������� � ����� )�!� �!

(3�"%"� "��#"�%)� $�!# ��$�!# ��!#"$�%���"$ ���4�3!"� � $/$! � " �%��!�"�!"$��"�� � � ����"������!/"�% � � ..

� ����� !���"��#� # ���� ���� � ������� ���� ���� ������� ���������� ����������� � �������� ��0����� ��� ��� ���� ��� �� ������������� �� �� ��� � ��� �� ��� ������� �������� � ����������� ���� �� ��������� (������ �"�"� 9� ���� ������ �� �� ������ �� �������� � ���� �� �� �����/$����� �������� ��� ������ �(�& � � � ���& � ����������� � �/� � � � � � �� �������� � ������ �&�' � � � �� � ����������� � � � !� � � � � ��� D�� �������� ���� �� ������� ������� � ��������� ����������� �� ����� ���� � ��� ����������� � ��� �� ��� ����� �� ���� � ����������� � �/� � � � � � � � � �� ���������� ����� ��� ��� �@ ������ � � � � �� 9� ����� �� ��� ���������� � � J , ��

/ !"� /!"� /! "� !/ "� !/"� ! /"� / "!� /"!� /" !� "/ !� "/!� " /!�/!" � !/" � /"! � "/! � !"/ � "!/ � !"/� ! "/� "!/� " !/� !" /� "! /2

+��-

���� �� �� �� 6����� �� �� ����7 ������� � �� �G��� ��� ������ �� ������ �� �� ��� "! /� "!/ � " !/� � � � � / !"� ��� ����� � ����������� ����#����� ��� �� ����� � +��- �� �� ���� ��� ������ �� +����- � � � +���'-+���&-����� �&�' � � � �� ��� ������������ � ������ ��� ����������� � � �!� � � � ����

K���� ��� ���� � ���������� ��� � J !;/ ," ��� �� ������ ����� �� ������$ ��� ��

� J�/ !",;

!;/ ,"

� �� ��� ��� ������� ��� � ��

� J +/ !-+ ; "-�

���� ��� ������� ���� � ����� / �� !� �� ;� ! �� /� " �� � , �� ,� ���; �� "2 � $��� � ��� S+,-� ���� ��� �� ���������� (���� , �� � ���� ����� � �������������� �� ��� ���� 6� ���� ,�7 F� � �� ���� /� J !� � J ;� ��� �� ��������� ���� �� �� 6��� ����� � � ���� ��7 D� ��� ������� � ������������ ���� ����� ���� J ;,"! /� �� ���� � ����� ��� ����� �� ��� ���$ ��� ��

� J�/ !",;

!;/ ,"

��/ !",;

;,"! /

�J�/ !",;

!;/ ,"

��!;/ ,"

"/;, !

�J�/ !",;

"/;, !

� �� ��� ��� � ��

� J +/ !-+ ; "- � +/ ;-+ ,-+! "- J +/ " , -+! ;-�

O����� ���� ��� ����� � ���� � �� +� - J + �- J ; J /� ���� $����!�

#���� �� � � ����� ���� ��� ���� ����������� �� ��� � ���� ��� ���� ���+�� ���� �� ��-� ��������� ���� � ����� ���� ���� � �� ��� ��� ���� ����� ����� �� ���� ��������� �������� ��������� �� ����� ��� ����� �+ - J ;������ �� ����� �� ����� ���� � + - ���� � ���� �+ + -- J �+,- J ,� ?��������� ������ ���� ��������� �� ��� ���� ��� ������� ��� �� ��� � ���� �� ��� ������������ �� �� �� �����

��� ��� � �� ��� ������� ����� �� �� ��������� ���� � ���� ����$������� �� ��������� �� ���� � ������� 9� ����� �� � �� 6��� �7 ����G������ J ;,"! / �� ��� ���������� � J !;/ ,"� ��� ��� � ", /;! �� ��� �

Page 13: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� 1

� �!�"�!"$��"������ �!�"�!"$��"����!�"�%���.:3$�*.�/ �"�.���� ���"� �.�3$�*.�#��$" �! �"%"���" ��" � ��*!-"���"�/ � ����"��

��� �� �� ����� � ��� �������� � �� ����� � ���������� � J �(�& � � � ���&�� ���� ���������� �(�& � � � �A��&B ����� � �� �� J � �� 4���������� �� ��� �� ��������� �� �������������� �� � �������� � �� �2�������� ��� ����� �� ��������� �� �� ������������ �� � �������� ��� � � ����� � ����� �� � ���������� ������� ���� ����������� �& �' ������ ��� ���� ��� ����� ���������� �� + !-� ������ ��� ���� �� �� +�& �'-�

9� ����� � ������ ���� �� T:������ &� ��� �� <"/� � �������� ��� !� ����������� �� ���� �� �� � !���� � �� �� � ���� ���� �� ��� �������� ������� � ��� ������ � �� �� ! ������� � ��� �� � ������ � ! H��� !"�����

�� �!������� ���!����# �� �$!"������ ���� +4���3 1.!-� ,)I� *������� ������ �� ��� ,$���� ��������� �� � ,� , ����

� � � �

� � � �

� � � �

� ! �

+� -

�� �� ������� )�!� � N )� ��� �� ! �� ��� ��� � � ����������� � ��� ���������� �� � � � � �� ���� ������ ��0������3 # ���������� � �� �� ! � ��� �� � �" ��� � ��� ��� "� ��� �� �� ��� ,$����� +?�� �� �� ����� ���������� ������ +�� �� � � � � �- �� ����� � ��� ������� +/� � � � � � ;-� ��� ��� � �� +� -�� ������ �� ���� "���� � ��� �� � � " ��� � ��E� �� �� � ��� ��� ���������-���� ��� ! �� ������� � � ����� ��� ��� � ������ �� �� �� ��� ��������� �6������������7 � ��� ,$�����

&���� � ����������� ! �� ���������� � ��������� ������ � ������� ������� � � �� ������ ��������� �� *�� �� *� (��� H���� ����� �������

�� ������� ����� +P���3 4������� 1)/-� .1N <"I� ����� �� � ��� � �������� #&� #'� � � � � ! ������ ��� � ����� ������3 #� �������� ����� � ������������� $�� ���� ����� � �� � ��� ���� ��� �� ��� � � � ������ ��������� �� ������� ! �������� ���� � ����������� F� �� $�� �� ��� ������������������� ����� �� � ���� ������ �� !2 ��� ���� / � � � �� ��� ������ ����������� ��� �� �� ����� �� � �� ��� � � � $�� � ��� ���� ��������� � �(��� ��� � �� ���� �� ������� � ���������� ������������ � ��� ����� ����3

���� $� ��� #&% #'% � � � % #��& �� ���� ��� ��� ��� � ! �� ���� ������

�� �/� � � � � � �� �& ���� ����� ������ � �� ! �� ��# � �������������

� J $&$' � � � $��&� ���� $� � #� � � � � �� +��-

#����% � � ��� ���� � ������������ ��� � $��& �� ��� ���������� $A��&B� �#��&� ���� � ����� � � �� �� ������� � � ������ � #& � � � � � #��' �� ����� �� � �� � *������ �� � � ����� �� �� � �� ���� � J ��$A��&B� � ����

�� J �$�A��&B�

�� � ���������� � ! ���� ���� �� � ��� ��� !� � � ���� ����������� �� ������ ��� #&� � � � � #��' �� � (��� ��� � � !�2 ������ ��� ��� � � ��� ����������� �� ��

Page 14: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

/ �� �������� ������� � ����� )�!� �!

9� ����� �� � ��� � �� �� ����� ����� ���� ��� ������ � (��� ��� � � �������������� ���� � ��� ,$���� ��

#� J �+-� +��-+��-+��-+��-+� -+�!-+��-+��-� � � � �

+��-+��-+��-+��-+�!-+��-+� -+��-�2

#� J �+-� +��-+��-+ �-+��-� +��-+��-+ �-+!�-� +��-+��-+��-+��-�2

#� J �+-� +��-+��-+��-+!�-� +��-+� -+��-+��-�2

#� J �+-�2

#� J �+-� +��-+� -+��-+�!-�2

#� J #� J � � � J #� J �+-�2

+��-

��� #� �������� . ����������� $�� � / � � � ;� ����� ��������� � ����% �� % � + ; � �- � / � % � ;� ��� ��� #� �������� �� � �� ������������������� �� ����������� ���� ���� � ���� ���� � ���� � ������� � �2 ���� �������� � � ���� �� ����� � � � � ! � �� ��� ��� #� �������� �� � ��� ������������������� ������� �� ����������� ���� ���� �� �� ��� � ���� � �� �� ��D��� ����� ���� #� J �+-� � � ��� �� ��� � �� �� �� ���� ����� �2 ����� �(��� ��� � ���� � ����� �� ������� �� � � �� � ��� ����� � ������������ ������ ��� ���� ���� ����� �� %���� ����

��� (��� ������������ +��- ����� �� ���� �� ���� � � ����� ���������� � ��� �� !3 9��� �� �������� $��& J $A��&B� � ���� � ����� �� �� �� ��� ��

�� �� J �$���&2 ���� �� �������� $��' J $A��'B�� � ���� �� ����� �� ! �� ���

��� �� �� ��� J ��$���'2 ��� �� ��� � �� ��� ����� ��� �%���� $�� ���� �������� �� #�� ��� ������ ���������� � ���� ��� �� ��� �� !� �� ��� ���� � +��-����� ������ ���� ����� � �� ��� �������� ��� ������ $�� $�� $�� $�� ��� $��

9� ����� �� �� � �� ��� ���������� +��-+��-+��-+� -+��-+!�-� ����� ��$������� �� ���������� +� - ����� ��� ���� ������� ��� �� �� ��� (���� � ���� ��$� �� �� ��� �������� ���������� +-� ��� �� J �� ���� $� �� ��� ����� � #�

���� ����� � �� !� ���� � +��-+��-+ �-+!�-� ��� �� ��� ��� J +��-+� -+��-+��-����� ���������� �� ���� �� #�� �� � �� ������ �� ����������� � ��� ,$�����

*������ �� +��- � �� ����� �� ���� �� ������� � � ������ � ��� ���$�������� ����� F� ���� � �� ������ � ����������� � ��� ��

$+ � �&-$+!� �'- � � � $+�� � ���&-�

���� $+�� ��- �� ��� +�� C -�� � ����� � #� � / � �� � �� J �#�� ��� � � � �� ����� ��� � ������ � (������ )�!� � ���� ��� ������ � +�� -$��� �� +�&� � � � � ���&- � ��� ��������� ������ +�&� � � � � ���&-�

%���� �� ����� !���"��#� P� ���� ������ �� ��� ���� � ��� ������$����� �� �/� � � � � � �� �� ��� �� ���� ���� ���� ��� #� � � (��� ��� � �� ��������C � ������ �$+�� /-� $+�� -� � � � � $+�� �-�� ���� $+�� /- �� ��� �������� ��� �������� ���� � �� ��� �� ��� �/� � � � � �� � �� ���� ��� +����� � � ������ ��������� �-� :��� ���� (��� ��� � ���� �� � ���������� �������� �������� ����� � ����� ��� ���3

Page 15: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� �����

���� �!�"�!"$��"��.

� ������ � +&������ ���������� !��������-� &���� � (��� ��� � +#&� #'�� � � � #��&- ���� ���� #� ��� � C � ������ $+�� �- �� 0��� ��������� ����� ������ �������� � ����������� �(�& � � � ���& � �/� � � � � � � � �� ������� ���� ��� ����� ��� � �� � � � �'�&�

��� H������ �M��I (�� �� � � ��� ��.& � / � / � � � ��

��� H������I +#� ���� ����� ��� �����$���� �������������

��������

���9�

��'

��� ��� �����

� ����������� ������� �� ��- ����� ��� ���������� �(�& � � � ���&�

��� H#�� �� �� � � � �'�&�I (�� � � � � �� J �� ��� �� � /� � � � C ���� ����� ���� �� � �� �������� ��� � ������ � � J �2 �������� ����� � �� C �

��� H4������I #�� � ��� ���������� &+�� ��-'+� � -� �� �(�& � � � ���&� ����� ����� �� ��� ��� ���� �� &!�

#�� ���� � ���������� ( �� �(�& � � � ���& ����� �� ����� �� �� �� �/ � � � �2 ���� ��������� �� ���� ��� ������� �� ( �� ��� ����� �� ��� K���� �����

&+�� �- J $+�� �-$+�� � � -� � � � � �2 +��-

'+�- J $+ � - � � � $+�� �-� +��-

���� ����� &" ��� &, �������� ��� ������ ����

�(�& � � � ���& �� ��� ���������� $+ � �&-$+!� �'- � � � $+�� � ���&-� +��-

��� K���� ( ����� ���� ���� ���������� �� ������� ����� � �����

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

���� ��� ������� 0 ��������� ���#����� ���� ���� ���� � 2 +�

��� ��� �� 9��� 1 � ������� # ������ & �� ��� ���� � J ,� #��������� +��-� ���� ���������� �(�&�'�9 � �/� � !� "� ��������� �� � ����$���������� ����� �9�'�&� ���� / � �9 � "� / � �' � !� ��� / � �& � � (��� ������ ��� ��� �� ��� �� �� � ���� � ����� �92 ����� �������� �� ��� �����������$+"� �9- � ��� (��� ��� � ����� ����� P��� ������ ��� �� ���� ��� ������ �9�'��������� �� ��� ����������� $+!� �'-$+"� �9-� # ����� ��� �������� ���� �9�� ���� �9/ ��� ���� �9�' �� ���� �9�'/� ������� $+!� /- ��� $+ � /- �� ����������� ���������� ��� ����� ����� �� �������� � �%���� ���� #����� �� ��������$���� ����� �9�'�& �� ���� &" ��������� �� ������ �� ��� ���� �9��� 1 �� ��� �������� �� ������ ��� ��� ����������� �� ���� &, ���������� ����������� �������� �� 9� ����� �� ���� �9�'�& ������� �� ! ��!//� ���� &, ���� ��� ��� ��� ����� ���������� ��

&+"� !-'+!-� J &+"� !-$+!� !-�$+ � -�2

Page 16: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

! �� �������� ������� � ����� )�!� �!

)� $�!# ��

)+�- � ����"��.0"�.)��!C � �!�� 0"�!#"$�%���"$ � %���"��$��,�%��$/$! ���$����3� "��

���� ��� ���� �� $+ � -� ����� �� �� ���� ! �� ���� !� ���� ��� ������ $+!� !-� ����� �� �� ���� ! �� ���� � ��� ���� ��� ���� �� &+"� !- J$+"� !-$+"� -� ����� �� �� ���� �� ���� ! � !//� ����� �� ��� ����� ���$����� � ���� ! � (������ ���� ������ ���� ���� ��� ������� �� &+"� !-'+!-�

�� ����� � ���� �� ������ �� ������ $+ � -$+!� !-$+"� - �� $+ � /-$+!� /-$+"� !-��������� +��-�

# ������ & ������ � ���� ����� � ���������� �������� +��� ���$���� ")-� �� �� �� �� ����� ���� ���� � ��� ������ ����� ���� ������� �� ��� �������� P ����� ���� � ��� ������� �� ���� ��� ������ ���� ��������� �� ���� �� ��� ����� �� ���� ��� ��������� �� ������ � � �� �������� ��� ������� �� �� ������

F� ���� � ��������� ������ ����������� �� ����� �� �� ��� �� � ������ ���� � # ������ & +��� +��--� �� ������ $+�� �- �� ��� +� C -$��� �

$+�� �- J +��� ���C � � � �-� +��-

��� ����� �� ���� $+�� �- ���� � �� ��� ���������� ���� ��������� �� �� � � � �&�� ����� �� �� ��� ���� �� J � ��� �� J / � % J �� ��� ���� �����������(�& � � � ���& �� / � � � +���� -+���C - � � � +�-+���-+�C - � � � +�� -� 9� ����$� �� ���� � J < ��� �� � � � �& J ///"//// ��� ����������� ����� �� ������������ �� / ",;!.)� ����� �� +! " , ;- �� ��� � ��� F��� $+�� �- �� ������� +��-� :%�� +��- ��� +��- ��� �� ��� ��� ��

&+�� �- J +��� �-2 +��-

'+�- J +/ -+/ !- � � � +/ � � � �- J +/ �-+ �� -+! ��!- � � � J )+�-2 + �-

��� )+�- �� ��� 6+�C -$G��7 ���� ������� �( � � � �� �� �� � � � �(� �� ���� ���� '+�-���� ��� �� �� ��� ���� �� '+�-�� ������� )+�-' J +-�

:%������� +��- ��� + �- �� ��� ���� � ������ ������ ��� ������ �� # ��$���� K ��� �� ��� ����� �� �� �%���� ��� +������� !-� ���� ���� K" �������� ���� ��� � ������������ ��� ���� K, ���� � G��� (��� &, ����� � ���� ��� G�����2 ��� ��� ��������

+��� �-)+� � - J )+� � -+�� �- + �-

����� ���� � G�� � ���� �� � ������������ �� ��� ���� �� � +��E����- ����$�������� � ���� �� ��� G���

�� ���� �%������ + �- �� � ������ ���� � ��� �������� ��������

(� +�& �' � � � ��-( J +�&( �'( � � � ��(-� + -

����� �� �� �� � ��� ���������� ( ��� ��� �$��� � +�& �' � � � ��-� P� ��� �� �+ - �� ����� � ����� �� �&( �� �& �� �' �� �'(� �� �������� ���� ��� ��� � ����� ����� ������ � � ��� ( �� ��� ����������� �������� ��� ����������(��( +�� �� ��� ���'�!��� � � �� (- ��� ����� � ��� ���� ��� � ������� �� �2�� ���� � �� ��� ���� � ����� � �� ���� ��� � �� �(�

#����� ���������� ������ ���� � # ������ & ��� ��������� �� 8� Q�P�$(���� H���� �� + 1.)-� ,;!2 �� + 1.1-� ."<2 ��� � �� ����& '& �� + 1) -�

Page 17: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� "

��3� "�����*/����"�% *!�$1� � � ����"���...�1"��"�% *!�$1� � � ����"���...

".N "1I� ����� � ������ �� �������� �� �������

$+�� �- J +� � � � /-� � + �-

O�� �� �� � �� �� +��- ����

&+�� �- J +� � � � /-2 + �-

��� ���� ����� �� ����

'+�- J +/ �-+ �� -+! ��!- � � � J )+�-� + �-

������� $+�� �- J +/ � � � �- �� ��� ���� �� ����� ��� ���� ����� ����� ���������� �� ���� ��� ���������� ������ �� ���� &,� ���� � &+�� ��-'+� � -������ ��� ������ �� ��3

&+�� �-'+� � -� J +� � � � /-)+� � -� J )+�-� + �-

����� P�$(������ � ������ �� ��� ������ ���� � # ������ & �� ����� ���� &,���� � ����������� �( ��� �& ���&� � � � 2 ���� �������� �� ���� � %������������ � �� ��� � ��� �� ����� ���� � ��� ��� � # ������ K� +(�� ���$���� "<�-

F� ��� �� ���� ����� �� ������ ������ �� ���� ���� &, ����� �� �� �� � ����� � ������������ ���� ����� �������� �� �� # ������ 4 ��� ��� �������� ��� ��0����� � ������� D��� ���� ������� �� ������ �� ��� ���� �� ����� ��� ��

&+�� �-'+� � -� J

�+� /-� � � �� �����

+� �� -� � � �� ����+ �-

�� ��������� �� '� 8� ?��� H����& '& � + 1."-� !1"N!1,I� O����� ���� ?����������� � ���� ��������� �� �( ������ ���� � J "� ;� � � � 2 ��� ��� �� �� � ���� ; � ���� . ������ �� ����� � !� :������ ,/ ����� ���� ?����� ���������� ������ ������� � ������������

&'������ ��"��� ( ��#�� P�� ��������� ��������� � # ������ & ������ �� ��� ������ � ����������� � �( � � � ���& ���� �������� ��2 ���� ������� ������ �@ ��� �� ���� �������� �� ������ ��� �� ��� ������ � ����� ���� �� ���� � ������� � ��� ��� � ������ �� � � � ���& ���� �� ������������ ��� ��� �� ���� ������ ��� �� ��� ���� %���� � ��� � ����������� ������� ���� ��� �������� � ���� D�� ������ �� �� ��� � �� ��� ���� &! �� ���� ����� ��������3

����� H#������� �=I � �� � � � ���& �� ��� �� �������� � ���� �� �� &!� � P��$����� ��� � � �� � ���� � � /� ����� ���� ����2 � � J /� ������ ������ &!�!�

����� H(��� ���� ����I � �� J �� ��� � $+�� �-� �� �( � � � ���&� ��� �� � /�� � � C � ��� ����� ���� �� � �� �������� � � J �2 �������� ����� � �� C � ��� � &+�� ��- �� �( � � � ���&� ��� ���� �� &!�/�

����� H������I ����� ��� ���������� �( � � � ���&�

(��� & ���� � � �� ��� � � � � � O����� ���� ��� ��� ����� �� ���� �������� ��������� +��-� ��� � ������ ��� ������ ��� ���� ������� �������

Page 18: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

, �� �������� ������� � ����� )�!� �!

� �!�"�!"�����!��� �"$�.

�� ���� �� ���� ��� ����������� &+�� �- ��� $+�� �- �� �������� �� ��� ����$������� &+�� �-'+� � -� ���� ����� �� &,� '�� ��� ��������� ���� ���������� ���� ���� ��� �E��� ������� ��� ��� ���� ����� ����� �� ���������� ������

�� ��

��� ���

��

��� ���

��

��� ���

�� ��

��� ���

� �

��

��� ���

��

��� ���

��

��� ���

���� �� 3������� ������� �� �� �� ��� ��� ������� � -��� )4� �� ������� 0 �� � ������ ���������

9� ����� �� 9��� !/ ����� ���� ������� �� ��� ��� � 9��� 1 ������� ����� � �(�&�'�9 ���� �������� �� ����� //� � ! � ��� ! �� ����������� �� +:��� ��� �� � � � ���& � ��� ���������� �( � � � ���& ����������� � ���( �� � � � �� � ��� ����� ����� �� � � � �&� ������� ��� �����������$+ � �&- � � � $+� � � ���&- �� ��� �E��� �� � � � ���&�- (��� &!� ���� ��� ��� ��&+�� �- �� ���� �� ���� ���& � � � ��.&� �� ��� ���� ��� ��� ���& � � � ��.&+�C -���� �� ���� ��� ��� �� $+�� �-� �� ���� �� �� ���� ���& � � � ��.&� �� �������� ���& � � � ��.&� ����� �� ��� �� ��� �0����� ���� ! �� ��� �������������� ��� � ������ ���� ��� ��� �� $+ � -�� $+!� !-�� ��� &+"� !-� ������������ �� ���� ! �� ! �� �� !� +���� �� � �������� ���������� ������������ � ���� ���� � J �� �0����� �� � � �� ����� ���� �� ����� ��� ���%������������ �(�& � � � ���& ���� ��� ��� �& � � � ���&�- #�� ���� ! �� �0������&+"� "- ����� �� �� ���� "� ����

O������ ��������� �� ���� ��������� � ��� �� � � � ���& �� ���� ���������� # ������ & �� �������� � ��� ���� �� ��������� � ���� �& � � � �� �� �������� ��������� � �� �� ���� �� ��� ���� � ��������� ����������� �& � � � ��� � � � � � � �� ��� ����� ���� � ��� ��� �� ��� ����$���� ���� P� ������ �������� ��������� �� �������� �& ���� ���� �'� � � � � ���� ��2 ��� ���������� # ������ & �������� � ������� ���& ���� ���� ���'� � � � � ���� �(� # ��$���� &�� ����������� ��� ���� �������� ��� ���� ���� ��� ��� �� � (������ � ������ ����� � �� ���� �� # ���� ������� ���� ���� �� ������������� ���� �� �� ��� ��������� �� �������

F� ��� ��� � ����� ����� �� � ���������� ������� �� �� � �� � ����� � �������� ������� � ��� �� ��� � ��� ����� �� � ��� � �� ���� �� �������� � ��� � �� � � �� �%�� � ��3 F� ���� �� ���� +�C � �- ��� / J / �� ������� ��� ������ ���� ����������� ��� �� � �������� �� �������������

�� ����� � � *� �� ��� ������� ���� � / ���� ������� ��� ���������� �� ��� �� ��� ��� ��� ����� ��� ������ ����� �/� � � � � � 1� �� ���� *( �*& � � � � � *?� 9� ����� �� �� �� �� ��� ��� ������ ��� �� +�-� �� ��� � ���+/� � � � � � 1- ��������� � � +�� � �� �� �� �� �� �� � �-� ��������� ��� ���������

�( J /� �& J � /////� �' J ! ////� �9 J � //� �: J � //�

�; J ! / /� �< J ! /� �= J � / /� �> J �)1/ � �? J �11<2

Page 19: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� ;

%� �D "!!"��� � �/ �$$���1"!� �D ��������� � �/ �$$����+D 1"!� ��+D %� �������)� $�!# ��-�" � ��*!!#"$�%���"$!"�1� !"��.

����� +*(� � � � � *?- J +�� ;� ,� !� !� � � � /� /-� O�� � �� ��� �� ���� &!�/ � ��� �� � � ���� *��& J *�� �� ��� ��� ���� ��� ��� �� � � � �? �� ���������� ��� ��� ���� C � � �C �?�? �� � �� ��� � � /���� � # ��� +��- �� � �� ���� �� � � � �?�� ���������� � � �� J / ��� � � � 2 ��� ���$ ���� ��� � �� ��� � � !� )��

P� ������� ������� �� � ��������� ���� ����� # N#" ����� ���� ������� �� �� ������ /@ ������� ������ �� ������� ���� ��� ���� ��� �����$�������� ����� ��� ��0�����$������������ ������ � ���� �� �� ��� �� ���� �� �. ����� ������� �� ����������2 ��� ��� � /@ �� "�.!<�<//� �� ��� ����������� ���� � ���� !! ��������� ���� ��� � ��� � �������� ����� �� ����'� �������� ��� �������� # ������ & ���� ?����� ������ ��� ��� ����E� 0����������� �� ��� � �� �� ������ �� +�- ���� ��� ���� !< )������@ ������� ���$�������� ������%�� ��� ��� ���� )/ ����� ���� ���� ��� �������������� ����� ���� � � ����� ���� � ��� ��

D��� � ��� !< �� ����� �� ��� ��� ������� �� ����� ��� ���� &+�� ��-�� ���� &!� � ��� ���� ����� ������� ���� ����� � �� ��� �������� �$+�� �-� �� ���� ����� ��� & �� ������ )< ! ����� ��� � $� �� ������ �� � ! .!������ ��� ����� �� ���� �� ��������� �� 9��� !/� ������� ��� 6�����������7 &+�� ��-'+� � -� �� ���� &, ��� � ��� ��� ���2 �� ���� ���� �� �� ������ � �� ������ ���� � ���� �� ������ ����� ����� ������ � ��� ��� �������� ����� � ���� ����� � �� & ����� ���� ���� �� ��� ���� ��� $� ��������� ���� ������ ��� & ����� �������� �� � ��� �� ��� ����� ���� ����� ���� ��� ����������� �� ����� � �������� ������� ���� ���� $+�� �-� ��������� �� � ����� &+�� -� &+�� !-� � � � � &+�� �-�

���� ��� ���� ���� � ���� ?����� ������5����� ���� �� ���� ������ ��������M� ��� ����������� &+�� �-'+� � -� �� ���� ���� ��������� �� ���� &,�� � ���� � ������������5 �� ��� ������� � ���� � ��� �������� # ������ &�� ��� ���������� � �� ����� �� �0����� �� ���� &!�/� ��� ���� � ������� �� ���� � ����� &+�� �- ���� �� � ���� � ���� � ������������� �� ��� ������� ��������� +��� +��--� ������� # ������ & ���� ����� �� �� ��� �� ������ � �������� +�- ���� �� � 1) �� ������

(��� � ��� �� ���� ���� ������ �� ���� � �������� ��� ���� 9� ��$��� �� � �� ��� � ��� �������� # ������ & �� ��� � ��������� �� ������� !,����� +�- ������ +�-� ��� ������������ ���� �� ��������� �

+;; � /� ,� <� ";/� <,� ;"� ;1<- �� ����� ���� ?����� ������2+,!1� <,� /� ;� !;.� ."� )� <1- �� ����� ���� ����� �� ���

+ �-

��� ������� ���� � ����� �� �� �� ����� ����� ��� ������� �� ���� ������� # ������ �� ����� �� < �� ���� +�- �� ,!// �� ���� +�-� ��� �� �� �����</ �� ��� ������2 ?����� ������ ����� �� ������ ������� � ����� ./�

F� ���� �� # ������ K� ������� ���� ����������� ��� �� ���� � ���$� �� ��"��� ��� ���� ������� � ��� ����� ��� � �� � � � �& ���� �� # ������ &�#�� � � ��� ��� �� # ������ K ����� ���� �� ��� ������ ��� ������� ��������������� �� �%���� � ����� �������� �� ����� � ����� ��� ������� � ���%������ ���� ��� ������� � ������ �� �� $������ �� � ���� ������ �� ������� ���� ���� �� ������� �������� � ����� � �����������3

Page 20: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

. �� �������� ������� � ����� )�!� �!

�����

� ������ ) +�� ��!���"� ���������� ��" �� ������ ���( � -� ���� � $������ �������� � ����������� �&�' � � � �� � � � !� � � � � �� ���� ���� � �������%����� � �����

�&+�&-� �'+�&� �'-� � � � � ��+�&� �'� � � � � ��-�

�������� ���� �� ����������� ���� �� ���� �� ���� ��� ��� � � ���� (� &�� � � � � �� �������� � ��� �� ��� � ������ � ������� �� ���� � ��� ����� ����� �� � � ������ ��

� � � � � � �� � ��&� � � � � ��� J �,&� � � � � ,����� ���� ,& � � � � � ,���� + �-

���� �� ����

( J ,&� �� J ,�.& � � � � �� �� ��� ���� J /� +��-

�� � �� ���� �� ���� ��� ��� � "& � � � "� �� ���� ��������� ���� ���� ���������� �� ��� ����

)�� H������ �M��I (�� � � � C � / � � � �� ��� � � /� ���� ��� � � �

)�� H:��� ��� ��I (�� -� /� � � (�

)�� H���� �& � � � ���I (�� �� � �� � ��+�&� � � � � ��- �� � ��� �� �� U;� P��������� � J �� ����� �& � � � �� ��� �� �� U.�

)�� H������� ��I (�� "� � -� � � �� � � � C � ��� ���� �� U!�

)�� H������� ���I (�� -� �� � � �� � � J / ���� �� U"�

)�� HA������ ��I (�� � � �� � ��� �������� � � J /� P������� ��� -� "��� � ��� � � �� ��� �� �� U;�

��� ����� ���� � ���� � ����� � ������ �� ��� �� D� *� : H����& '& �� + 1<)-�!<!I� F� ��� ��� � �� �� � ��������� �� �������� �������� � ���� �� �������������������� �( � � � �? � �/� � � � � 1� ��� ������ &( � �� ��� ��� � � � (� ������ ���� � ������ ����� �� � ,1 �� ����� �� �� �� ��� ���$������ ��� �� +�-���� �� �� ��� ��� � ��������� � ������� !,+�-N+�- ��

+!,<� "<� ,� "� !!� "/� ;;� ;;"- �� ������ +��-

��������� �� ���� �� ��� ����� .; ����� ���� ���� ��� ����$��� ��������#����� ��� �� ��� � # ������ U �� � ��������� �� ���� ���� ��� +���

������� ,1-�

� �

���� ��� ,�� ���� ��������� ���#����� �� ������� 5 ���� � 2 +� �� ��� ���� ������� ��� #������ ����� ���� ��������� ���� )6�� )+� �� 6)+� � +6)��

Page 21: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� )

�" � ��*!.���! � %���"�� "#�3��"# �� *)� $�!# ���!�"� $���%�

*+� ������� � #&� � � � � #��& �� � (��� ��� � � � ���������� ���� !��� ����� �� K���� ( ���� ���� � ����� � ! ��� �� �������� ���%�� � ��� ������ $& � � � $��&� ���� $� � #�2 ��� +��-� :������ ;/ ����� ���� ����� ����� � ��� � �� �� �������� ���%�� � �� ��� ��� ��

� J $���& � � � $�

' $�

& � ���� $� � #� � � � � �� +� -

��� ���� ��� ���� �� ������ ��� ��� � � ���������� ��������� �� ��$���� �� ���� ! �� ��� ���� � � �@ ������������ ���� ���������� ��� ��������

$+�� � ���&-� � � � $+!� �'-

�$+ � �&-�� +��-

���� / � �� � � � � � � � ��� ��� ����������� $+�� �- �� ��� ���� ���� # ������ &� O��� ������� �� ���� �� ��� ���& ���� ���� � ��� �& �������� �� �� �� ���� �� �� � ������ � � ��E���� ����3

� ������ , +���� ���������� !��������-� &���� � (��� ��� � �� �� # ��$���� &� ���� � ������ �������� � ����������� �( � � � ���& � �/� � � � � �� ������� �� ���� ��� ��� � �( � � � ���&�

,�� H������ �M��I (�� �� � � ��� �� � / � / � � � ��

,�� H������I +#� ���� ����� ��� �����$���� ���������'�

���9�

��������

�����

��� ��� �����

� ����������� ������� �� ��- ����� ��� ���������� �(�& � � � ���&�

,�� H#�� �� �(�& � � � ���&�I (�� � � �� � � �� J �� ��� �� � /� � � �� � �������� ���� � J / � �� � �� �������� ��� � ������ � � J /2 ����������� �� � �� C �

,�� H4������I #�� � ��� ���������� &+�� ��-'+� C -� �� �(�& � � � ���&� ����� ����� �� ��� ��� ���� �� ?!�

# ������ ���� � ������ ���� � ���� �������� �� # ������ &� ��� �����������& ��� ' ���� �� ����� �� ���� ?, �� %���� ��E���� �� ����� ������ �� ���� &,���� ��� � ��� ����� �� ��� +��- ��� +��-� ��

&+�� �- J $+�� �-�$+�� � � -� � � � � �� +��-

'+�- J $+�� � �� -�$+�� !� �� !-� � � � $+�� �-�� +��-

��� ����� � ������� ����� �� 0��� �� ���� �� �� ��� � # ������ &� �� ���� ������ �� ��������� �� � �� ����� ���� ���� ������ ����� P�� ����� ���� �� �� ��� � ������ ��� (��� ��� � ���� ����� # ������ & ������ ������� �� ���� ���� �

$+�� �- J +��� ���C � � � �- +��-

�� �� +��-� ��� ��� ���� ���������� ������� ���� ��� �� �� ��� ��� � ������� �� ��� ������ � � ��� �������2 �� �� ��� ��� ���� # ������� K ��� 4�� �������� � ��� �� ���� ����� +(�� ������� ;!�-

#����� ����� ���� �� �� �������� � (��� ��� � � ����� ���� ?, � ��������� � ���� � ������������ � ��� � ������� �� ��� ��� ���� ��� ������������ + �- ���� �������� ������� ������� �� ���� &,� '�� ���� � ������� ������� ��� �� �� �������� �3 F� ������ ������� �� ���� ���� � J ,� 9� �

Page 22: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

< �� �������� ������� � ����� )�!� �!

��3� "��$/$!"$ ��" ��

�� ���� ���� ��� �������� ���������� �(�&�'�9 J / !"� ��� ���������� �������� �� �� ����� ��� � �(�&�'�9 J //// �� /// �� ///! �� ///" ���� ������� "2 ��� � ���� �� �������������� ���� ���� �� +" �-� +� ,-� ��� +, �- � �������������� �,� � �/� � !�� ��� ���������� ����������� �� �(�&�'�9 J ///"�� ��� $+"� "-� J +, �-+� ,-+" �- J +" � , �-2 ��� ��� ���� ����������� �������������� �� �(�&�'�9 J // /� �� �� $+!� -�� ����� ���� �� ��� � ����� "���� �� � ������ � ������������ �� +" �-� ����� $+!� -� ���� �� +" �-+" � , �- J+� , �-� (��� � � �� ��� ���� $+!� !-� ���� �� +� � ,-� ��� ��� ��������������������� �� �(�&�'�9 J //!" �� �� +" � , �-+� � ,- J +" �-� (��� ?, �� ����������� �� ������ ���� �� ��� ���������� $+ � -�� ����� ��������� �� �������� ��� � / // ���� � ��� //!"� '�� ��� �� � ������������ ���� �� ������+" �- ���� � ���������� ���� ���� ! ��� " �� +" �-2 ��� ��� ��� ���� ����������� �� ���� � �� �� ������ �� $+ � -��

��� ��� �� ��� �������� ������� ����� ���� �� ������ ��� # ������ ?�� ������� � ����������� ���� ��� ������� ����� � �������������� '�� ��� �� �������� � ���� � ��������� ������ ���� ����� ��� � ��� �� ��� ����������� ��� ��� ���� � ������ �� %���� ��������� ������� �� ����� �� �� ���� ����� � ���� �� �+�� - ������ +(�� ������� ;"�-

9��� �� ���� ������� ��� ��� � P�$(������ ������� ����

$+�� �- J +� � � � /-� +��-

�� �� + �-� P��� ����� ��� �� �� � &+�� �- �� ����������� � ��

&+�� �- J +/ � � � �-� +��-

��� ���� ��� �� ������ � � ������������ �� # ������ ? ������� �� � ��� ���� �������� ���� ��� ����� ��� � �(�& � � � ���&� ��� ����� �� ���� ���& J / ������ ?" � ��� �� � � ���& J � � � ������� � +� -2 ��� ������� ���� �� J /� � � � � � �� ���� ?" �� ���� �� J / � ��� �� � � �� J �� ������ �� ������� ��� ���� ������ � # ������ ? �� � ����

� ������ - +#��������� !�������� �� ����� "�� -� ���� � ������ ������� ����������� �& � � � �� � ��� �������� � ������ �.&� � � � � .���

-�� H������ �M��I (�� �� � .� � � � � ��

-�� H������I ����� ��� ���������� �& � � � ��� ��� ��� � � ��

-�� H(����I 8�� ��� �&�' � � � �� �� ��� ��� �� ���� �' � � � ���&� ��� ���� �� *!� �� J .��

-�� HA������ ��I (�� � � � � � ��� �� ���� �� *" � � �

9� ����� �� ��� ���������� ����������� � � � !� "� ,� �������� ���� � J , ��

!",� !", � ", !� , !"� + !",-�!" ,� " ,!� ,!"� ,!" � +!" ,-�" !,� !,"� !," � ," !� +" !,-� + !",-�! ",� ",!� ",! � ,! "� +! ",-� "!,� "!, � !, "� , "!� + "!,-�"! ,� ! ,"� ,"!� ,"! � +"! ,-� +! ",-� + !",-�

Page 23: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� 1

���%����� �1"���"�E��!"$�F��3! �� �4���.�4��� � F�� ! ��.������� �������"�"���

���� ��������� ����������� ����������� ����� �� ����������� ���� � ��������� �� �� ��� ���� ��� ���������� ������� � � � �� ���� � ������������ ������ �� �� ��� �� &� &� K������� Q� H���� �� + 1.)-� !1<N!112�� + 1.<-� "1!I2 ���� � ������� ��� ���� ��� ����� ������� � �� *� ��������H(���& ����& ������ ���& � + 1;.-� !/!N!/;I ���� ��� ��� ���� �� �� 8� (���MH)����������������� �� � + 1.!-� !N ;I� ��� ������� �� ������ � � �� ������ �� ��� �������� �� ����� ��� �� ������� �� ������� � ����� � ���� ���$������� ����������� �� ����� ���� �� � ������� ������ ������� � �� �� ����

��� ���� ������������ � ��� ������� �� ���� ���� ���� � �� ��� ������� �� ���������� ���� ��� � ���� � ����������� ���� �� �� �������� ��$����� ��� ��� � � ����������� ���� � ����� �� �� � ��� ��� ����� �������(�& � � � ���& �� ���� � ��� � ���������� ��� ������ ���� +��- ��� ���������������� �� ���������� ������� ��� �@��@ ����������� ���� �(�& � � � ���& J// � � � / �� ���� ���� �� ������ � ����� �(�& � � � ���& �� ����� / ������� � ������� !� � � � � ��� � � ! ������� � � �

*.�� ���/� �"� ������ &����� :� ��� ��� ��������� � ���� ��� � ��E����������� �� ���������� ���������� ����� �� ��� ������ ��� �� ��� � ����� ��� � �& � � � ���&� ?�� ������ ������� ���� ���������� �� ��� ��������� �������������� ��� ������ � ����� ���� ������3

� ������ . +*"���" ��� -� ���� � ������ �������� � ����������� � ����������� � ������ �( � � � ���& �� ����� ���� ��� ��� �� ,( � � � ,��& ��� �& � � � ���

.�� H������ �M��I (�� ,� � � ��� ��.& � / � / � � � ��

.�� H������I ����� ��� ���������� �( � � � ���&�

.�� H9��� ��I (�� � � � ���� � �� J �� ��� �� � /� � � �C � ��� ����� ���� �� � �� �������� � � J �� �������� ��� �� � �� C �

.�� H(����I ���������� �( ��� �

.�� H9 ���I (�� � � � � � � � � � � � �� ���������� ,� ,�� ��� � � � C �� � � � � ��� ����� ���� � � �� 8���� �� :!�

O����� ���� ����� :! ��� :" �� �������� �� ����� &! ��� &" � # ������ &���� ���� ���M��� ����� ����� ���� � ������� ����� :� ��� ������������ ��D���� &���� �� 1<)� �� ���� �� ����2 ������� ;; �������� � ���� # ���� �������� ����� ���� ���� ��� ��������� � ���� :;� ��� �� �� ������ �� ��� ������� +��� ������� ;.-� ��� ������ ����� � ����������� ������ �� ���� :;�� ��� ���� /� < +��� ������� ;)-�

#� �� ������� # ������ : ����� ���� ���� ���� ������� �� ���� ����� '���� ��� ��� ���� ������ ���� �� ������� ���� ���������� �� � ������ ���� ������� � �� ��E���� ����� � �������������� F����� # ������ 4 ���� ��0����������������� ���& ��� # ������ : ���� ���$� ����� ������ �( ��� � ���� �� ��� ���� �� ��� � � ���� �� $������ ��%����� � ������� �H I� �H!I� � � � ��H�@ � I� #�� � �� �� ��������� ����������� ������� � � ��� ���� �� ���� �� �� � �� �� ��� ��������� ���� ��%������ �� �� ��� �� # ������ �

Page 24: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

!/ �� �������� ������� � ����� )�!� �!

�",���"��"! $/$!"$ ��" �%�����/!/ %�����/!/�� "!���"�� ����.�� "!���"�� $"$�"�.�"% �3��� ����.���1"���

� ��� ����� ��%����� � # ������ 4� O����� ���� ��� ������������� ���� ����������� ��� ��0����� ������������ ������� �� � ���� ���� ��� �� �� � �(�� ��� ������� ����2 �� ���� ��� ��� �� �� ������

K�� /� �� ��� ��%����� � �@� ������� � ���� ���� # ������ : ����� �(���� �� �� ���� :,� (���� /�.& ������ ���� /�� �� ��� ���� /� �� ��� ����@� � ������ � �� ������� ��%�����

/� J ! ! "! ! !" ! ! "! ! !," " "! " " ! � � � � +��-

9� ����� �� � � J , ��� �(�&�'�9 J !",� ��� ����������� ������� ��# ������ : ��

!",� ! ",� " !,� "!,� !" ,� "! ,�

,! "� !,"� ! ,"� , !"� ,!"� !, "�

", !� ," !� ",!� " ,!� , "!� ,"!�

!," � ",! � ,"! � !", � "!, � ,!" �

+��-

*%���� !�"�� ��������� #�� ������ # ������� 4 ��� :� �� ����� ����� ���� ������ � ����������� ��� �� �������� �� ����� 0��� ��� ����� ����������������� � � � � 9� ����� �� O�0������ ��� F� H���������� ���������

+ 1);-� :������ .I ������� ���� � ����������� ��� �� �������� � � J ,� �� �� ��� �&�'�9 � � � �� �� ���� ���� �� ����� �'�9 � � � ���& � �'�&�9 � � � ������ ���� ������� ������ ���� � ������ ������ � � ��

�� ����� � � ! �� ��� ���� � ����������� ��� � �&� � � � � �� �� � �$����� � !� ��� ������ !���" � ! ���� �������� +�&� � � � � ��- �� ��� ����������� ����� ������� �� ��� ����������� ( � ! ��� ����� ��� �� �� (�� �&(� � � � � ��(� H#��� *�� ��� ������� '& ���& � + <)<-� ),N ).�I ���%������� � O�0������ ��� F� �� �%���� ��� �� ������ ������ ��� *�� �� ����� � ����������� � � � !� � � � � ��� ���� �������� $ ��� & ���� $ �� ��� ��� ������������ + ! � � � �- ��� & �� ��� ������������ + !-� ��� � ?��� ������ �����

# ����� ������ ��� �� 8� #� 8����� H(���& �������� (����& ���& ��

+ 1,<-� )N!;I � ��� �� �� ���� ��� �� ���� ����� ���� *�� �� ����� ���� ����������� �� ��� ���� � ?��� ������ ������3

������� 0� ���! �� ��� � ���������� �� 0 ���� ������& �� ��� ���� ����

��� ! *��� ��������� +�� - �� �������� ���� ��% �� �� ��� ���� ������

+�� � � �- �� ����������� �� ����� +�� ,� �-% ���� ������ � �� ���� �� 0�� �� 0�,�� ���&

+��� ����� � � ���������� � �� ��� ���� �������� ������ � ���� ���� �� �� ������������-

#����% (�� ������� )"�

�� ������ �� ���� � J $ ��� J & �� ������ �� ���� 0 J �@� � J �� , J !� ���� J �� � ������� $&� J +! � � � �-� ������ �� ���� ��� ���� �� ?��� ������������ �� ������ � ���� � � , �� ����� ?������ � ?��� ������ ���" �� ���� ��

Page 25: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� !

���1/G"��%������� �����"!!"� ���*!!3"�%"�%� ����"�� %���"��C �����...���H..�����%4"$1

�������� ���� � J ,� ������� �� ��� 0��� �� ��� !$��� ��

!",� !", � ", !� ," !� " !,� !,"� !," � ,!" � !" ,� " ,!� ,!"� , !"� !",�

! ",� ",!� ",! � ,"! � "! ,� ! ,"� ,"!� , "!� "!,� "!, � !, "� ,! "� ! ",�

+��-

�� ������� �� !", ��� 0������ �� !", �� ! ",� ������ �� ,! "�8������ Q����� ��� F����� H+������� ������ ���& �� + 11;-� );N<"I ��$

������ �� ���������� ����� �� ��� $N& ���� � � J ; ��� ��������� ������ ��� ��� �������� � �������� ?��� ������ �������� ��� � ����� +��� 6����������� 7- �� � ������� �� 9��� !!+�-� ���� � �� ���� � ?��� ������ ���� �� J .2 ���� ��� � ���� � ���� ������� �� �� ��� ������� � � )!/$����� ������������� ���� R�������� � ��� �� ����� ���� ��������� ��� �� ������� ����� �������� # �������� ��� ���� �� ���� �� �������� �� ������� )/� ��� �������� ���� ������ �� �� �� ���� �� ������ � $N& ������� �� ����� ���� �� � ������� ������� � ��� �� ��� � � �� ��� � ��� ������������� ���������� 8� *� *������ ��� (� &� F� ������ H����� �� � ������

����� �� + 11"-� !")N!1"I ���� ����� ���� ?��� ������ ������� ����� �� � � ��� ���� �������� $� $�� ��� & �� � ���� ������� � 0��� $ ��� & 2���� ��� �� ���� ��� ���������� ������ ���� ���� ��� ����������� �� & ���� ��� ���������� � � ������������ �� ����� � $ � � $�� '�� ���������� �� ��� ���� ������ �� ��� ��� �� � ���� ������

:������ .1 �������� � ����� ���������� � ������ ���� �� ������� ����� � ��� ����� �� � ���� ��������� ���� � ��� !� 9���� !!+�- � ���������� ���� � J ; � ���� ������� ����� ��� ��������� �� ����� �� � �� $�������

&�' 3���� ��� ���������� &) � 6 + 7' ��� &) �'�

&�' 3���� ��� ���������� &) �'&6 +'� &� 6'&+ 7'� ��� &6 +'�

���� ��� 8��������� �� ��� �� 79 ���� �������

1���2 !���� F��� �� ��� ������ ��� �� ������� �����������= ���� %���������� ���� ���� ����� �� ������� ��� ��������� ������� ���� � ��� ������� �@������� ����� ���� �� ���� ��� ������ ���� �� ��� �� ������ �� '�� ��� ���������� ����� � ���� ������������ ������� ���� �� ���� ��E���� ���� ����� ��� ��� %�������� K���� �� �� ��������� ��� � ���� ������ �� ����������� ����������� ����� �� �������� ���� ���� � �� ��� ���� ��������

(������ ��� ���� �� ��� �� �� ������ ����������� �� �� ��� � ������������ ����� ���� +���������-� ��� ������ ��� �� �� ����� � � ���������� ���� �� ���� �������� �� �� ����� ��� ?����� ������ + �-� �� ��������� ��8� (�������� H���� ���� � ����� 3 + 1))-� ;)N ./I�

Page 26: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

!! �� �������� ������� � ����� )�!� �!

� ����"�� %���"��C %��!.7��!��� �/**!�.

��� ��� ���� �� �� ������M� ��� ���� � ��� ���� ������ ����� � ����� &!��� &"� ���� � ��� ����� �� ����� � �������� ����� �� ��� ��������� � ������� � ������� "� �� ��� 1 ������� ��� �������� � ��� ��� ���� ����� ���� ��� ���� ��� ����������� �� �� �������� ���� �� �������� ����� ���� ��� ��� ������ � ����� �� ��� � �� � �� ��� 0�� �� � ���3

"#$% �&�'('�

� )&��* � +&��* "#$% �&�'('�

� ,&��* � )&��* "#$% �&�'('�

� +&��* � ,&��* "#$% �&�'('�

� )&��* � +&��* "#$% �&�'('�

� ,&��* � )&��* "#$% �&�'('�

+� -

+?�� �� �� ��� ������ � �������� �(� ����- # ���� ��� ���������� ����������� ����� ��� � ������� ��� ���� ������ ���� "� �� ��� 1� ������ �� ���$���� ))� ��� ��� ���� ����������� �� ��� �������� ������� ���� ���� �� �������� �� � &

< � ��� ����� ��� ���� ���� �� ����������� ��� �������� ���,2 ������ � "#$% ��� " " �� ���� �� �� �'('�� ����� �� ���������� �!�))+ C ;�.12 ���� ���� �������� � �� ��� �� ������� "� �� 1� .� ��� ��� ������ +� - �� !, �� � �� �'('�� ��� ������ ���� �� ���������� ������ ����� !� 1+C "�/)2� #�� ���� * ������� ��� *@ �'('��� ������� )< ��������� ��� ���� �� +! C 3+ �*@--++ C 2-� ����� �� ��� ��� � ��� ���� � ��� �

��������������� ���� ��� � ������ ��� ������� ������ � ���� � ��� ������ ����

�������� � ����������� �� � ��%������ ���� � � �P �� ��= F� ���� ����������� ��� �������� ������ ����� �� ��� ����������� �� ����������� ��������� ��������� ���� ������ �� �� � �� ��� ��� ����������� �� ��E���� �������������� ���� �� ��� ����� �� ���� ���& ���� ��� �� ���� ��� ������ � ������� � ������ �� ��� ��������3

�(�& � � � ���'���&�(�& � � � ���'� +��-

� �� ��� �� �(�& � � � ���' �� ������ +�� -@ ������������ � ���� ������������ ������ ���� ������� � �� ����� ��� � �������� ������� � ���� �� ��� �� ���� �� �� �'('� ��� �� ��� � �����������

�(�& � � � ���&� �& � � � ���&�(� � � � � ���&�( � � � ���'� +��-

����� � ����� ����������� �� ��� ���� �� ���������� �� ��� ������ �� ������� � ���� ���� � ����������� ��� ���� -�"� ".�/� � �� 3+ ��-� H(�� ��� ��� 8����� ����& '& �� + 1< -� )"N ).�I

9�������� �� ����� ��� ���� �� ����� ���� ������ ����������� ��������� �� � � (������� � ����� �� ���� �� ��� �� �� ������� � ������$����� � �/� � � � � � � � �� ��� �� �� � � �� ����� � �� �� ���� .� ������� .@ J !/�1!!�)<1�<<<�/// ��� )@ J ";;�.<)�,!<�/1.�///� ������ �� ��������������� �� �� �� ��� . ���� �� � �� ��������� ��� �� ��� ���� �� �� ����� � ������� ���� �� �� ������������ �� � � ��� �������� ������ ����������� �� ������ ��� ��������� ���� ��2 ��� ���� ������� ���� �� �������� ?����� ��� �� ������� ����������� �� ��� ���� �� � � .,$��� ������=

Page 27: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� !"

��!���"��!�"�3$���%���%���$/$!"$3��" �

P�� ����� ��������� �� � ������%�� ��� �� #� Q� &� ������ H)& �& (����,,-,../ + , D�� 1.<-I� �� �� ��������� ��� ��� � +�H I� � � � � �H;/"1I- � � ���$������ ���������� � ����� � ������� ����� # ������ �� ����� ������ �H�I ��������� ��� .� �� �� ��� ���� !/ � ���� ���� � .,$��� ���� �� �� ������������ ��� ��� �����

�'(�@& !

9��&�H!/� C �I ���� ��� � � �� ���� ��� ��� �� �/ � � � !;!� ���� �H;/,/I J 2 � ����� �� ��� ��� � ������ ���� ��� �������

//�// �/ /�/ � //� / � /� //� /� / � //�/ �/ /�// � /�// �/ /�/ � //� / � /�//�

��� � ����� ����� ���� ���� ����� ������ �3

"�01 � ��� �������� � � ��� %��� ���� ����� ��$ ��� �&� � � ������� � %��� ������

%�" �2�$ �:���� ��� ���� ����� �� �������� � �

� ���� ��� ������� � � ���� ��� � ���� ��� ��� ����� ��# �&�&� � � � � 6�

�$ ��� �&�&3�� � � � � &)))��'� �".�/ �&�. ;���� �� � �2 ����� �&�&�

�$ �� �&�&� � � ���� ������".�/ �&�. &,�� %��� ����� �� ������ �� ��'� �� �� ���� ��#��� ��� ������� �� � ������� ��� ��� �� � � �

+��-

:������ )1 ����� ��� �� � (��� ��� ���� �� � � � � ���� ����� ������������ �������� ������ ����� ��������� ���� �� ���� �� ���� ��������� ������ ������� �� ���������� �� 0��� � ��� ��� ���� /2� +��� ����������� ���� ������� �������� ���� �� � ++ C ;2-�!/2 ��� ��� ����������� ���� ������� ��� ������ ��) ���� �� �� ���� ��� ��� ���� � ����� ���� ���� �� ������� �� ;/,/�-O����� ���� ���� �� ��� �� ���� � "#$% ��� " " �� ���� ��� ���� +� -2 �������� ����� ����������� ����� ��� ���� ��� ���� ,2�

F� ���� ������� �� ���� ����� �� �������� K�������� ��� ��$���� �������# ������ *� (������ �� ���� ���� ��� ������������ � ����� ������������� ������ �� � ���3

4�4 5�$ -�� 3����!� ���������67�887�9�:;�:"�01 �� # �&�. ��� � � � � � � !"#��

%�" �2�$ �# �&�&�97��;�: � � ��)<�����

� �&�&� � � � � ���$ �:���� ��� ���� ����� �� �������� � �

�# �&�&�97�;�: � � ��)<�����# �&�&�97��;�: � � )<������� )<���".�/ �&�. , # �� � �2 �������� � ���� =�����>� ����� �

+��-

��� ������ ���� �� ���������� �� ��� �� � ;2 C 3+ ��-� ����� ������� ������� � "#$% ��� " "� (�� ������� < � �� ���������� ��� �� ������ +��- ��� ���� ��� ������ ��������� � ������ � ���� ��� ��� �������

Page 28: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

!, �� �������� ������� � ����� )�!� �!

����!�%"$�! ���"�%..!"�� *��"�%#���"�%���"�! ��"�%����! ��"�%� ����"��� � � �!�"��"�)� � ����"��.����% ��*!��.

9��� ���������� �������� �� �������� ��� �� ������� �� ��� ���� ����� ��� ���� �� ����� ����� ��� �������� ������ ���� �� �������� �� �����������

���� ���� ������� ������� � ������ ���� � �@ ����������� � � � � � � � ����� ���� ���� �� ��� �� � �� ����������� ���� ���� ������ ����������� 9������ �� �� ����� �� ��������� �� � �� ����������� � ����� ������� "�! ������� "� ��� ! ������� ,2 ���� �� ��� ���� ����������� � � � !� "� ,������ �

!",� !,"� ! ",� ! ,"� !, "� +��-

��� ��� �� � ������!��� ����!� ����� �� ������� �� (������ !�!�" �� � �������� � � �������� ���� ��������� �� ��� ����� ��� �� � ������ � ����$������ ���� ��������� ���� ���������� .& � 4&� � � � � . � 4� ���� . � 4 ��������� . ���� � ������ 4 �� ��� ����������� ���� ��� �� ����� �%���� � ���������� �� �� ��� ����� ��E���� �����2 � ����� �� �� �� ���� �� �� ��� ������������! ��� ��� ������� �� ���� �� ����� ��0���� �� � ��� ��� � �������������� ��� � ����������� �� �� � �� ��� ��� �� � ��������� � ����� �������� � ���� ������ +��� ������� !�!�"N ,-�

P� ��� �� (������ !�!�" ��� �� ��� � �!�� ���������� ���� ��������� ��� � ������� '�� ��� �� ���� ���� �� ��� ��� ���� ������������ � ���� ����� ����� ������� �� �� ������ �� ��� ������ ������� ���� ��� � ������. ��� 4 �� ����� ��� � ������ �� ������ �� ������� ������� ��� �� ������� �� ���� . � 4 ������� . � 4� *����%���� � ��� ���������� ! � � � ��� � ���� �� ���� ����� � ������ +� ���� ���� ����� ���������� �� ��� ������ ��� �������� ��� ���� �� ����� # ������ !�!�"� �� ����� ��� ��0������������� ��-

D��� �������� � ����� � ����������� �� ������ ����� � ���� ���� ����� ������ ��� ��� 9� ����� �� ��� ����������� � � � � � � � <� ���� ����

� !� ! � "� " � ,� . � )� ) � <

�� �%���� ��� �� ����������� � ��� �� ����� � � � � � !� "� "� "�� ������� ����� ��� � � !� "� ,� �� � ; �� !� ��� �.� )� <� �� "� F� ���� ��� �� ������������������ � � �� ����� ����� # ������ K� ��� ��� �� �� ��� ������ ����

O����� ���� . ������� 4 �� � ���������� �& � � � �� � ��� �� � � ��� � ��� ����� ������ ���������� ��& � � � �

�� ������ ��� � ������ �� �� ����� �� ������� � �� ��� � ����������� ��& � � � �

� ���� ���� ��� � ��� ������� � � �� 9������ �� �� ����� �� (������ ;� �, ���� � V���� ��� ��� �� �� ��������� �� � � � � � �� �� ��� ��� �� ���� �� ���� ���� �� �� ��������� �� �� �� ������� ���� �� ��� �� ��������� �� ��� �� ������� ��� ��� �� � ��������� � "� " V���� ��� ���� �� ������ �%���� ��� �� ��������� � ��& � � � �

? ���� ����

��& � ��' � ��9� ��: � ��; � ��<� ��= � ��> � ��?�

��& � ��: � ��=� ��' � ��; � ��>� ��9 � ��< � ��?�+��-

��� ���� �� � ������ ���� � ���� ����� �������

Page 29: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� !;

��$�"�%�7��!��� �!�"� $���%�

F� ����� � �� ���� �� ��� � ����"�! � !� � ������� ���� � � ���� ���������� � � � � � � !�� ���� � ����� ���� �� +!�� -+!��"- � � � + - J +!�-@�+!��@-���� �� �� ����� ��� ���� �������� �� ����������� ���� ������

��& � ��'� ��9 � ��:� � � � � ��'��& � ��'�� ��& � ��9 � � � � � ��'��&� +��-

#� � ����� � ������ � ���������� ���� ����� ������ ��� ��������� ��V� K� ��� ��� A� 8���� H����& '& �� + 1< -� <"N<,I� ��� �� �M�� ���� ������� ��� ����� �� � ��� ������� +# ������ 4- ��� �� ����� (������ ������ ���� � ��� �� ����� � � � � � � � � � ���� ����� �� �� ���� �& � � � ���&�������� � ��� ���������� ���� �� ��� ���� �� �� ���� �� ��� ���� � ���� ����� ��� � ���� � ���� �� ����� ��� ��� � ����� � ������� �������� ��� � �������� � �& � � � ���&3 F� ���� � ���� ���� �& � � � ���&�� ���� ���� � �� ��� ������ � ����� ���� �� ������ ���� ����� #�� ���� ���� ���� ������� � ��� �� ���� ����� ����������� ��������

� ������ 4 ++�� ������!��� ��� -� &���� � � ����� � �� � � � � � � �� ���� ��������� ���� . � 4 ��� ��� . � 4� ���� � ������ �������� � ������������& � � � �� ��� ���� ������� ��& � � � �

� ���� ��� ������ ���� ��� � ��� �������� � �� F� ������ � ����������� ���� �( J / ��� ���� / � � � � � � ��

4�� H������ �M��I (�� �� � � ��� ��� � � � / � � � ��

4�� H������I ����� ��� ���������� �& � � � �� ��� ��� ������ ��& � � � ��

�� ���� ���� � ��

4�� H*�� � ���� ��=I (�� � � ��� ��� � ���&� � � �� �� �� �;�

4�� HV��� ���� ���I (�� ���& � �� �� � � ��� � � � � ��� ��� � �� &� �� �!�

4�� HO�� ��� � �����I F�� � � � �� ��� � ��.&� �� � � ��� � �� ��� � � �C ����� ��� �� � ��� � �� A������ � �� ��� ���� �� �" � � /�

9� ����� �� ������ ;� �,? �� � �� ���� ���� �� ����� � ,! V���� ��� ����� ��M� "� "� � �� ��� � # ������ � �� ��� � ������ +��- ��� ���� ��� ���������������� �� ��� ��

��&��

'��

9

��:��

;��

<

��=��

>��

?

� +��-

�� ��� ��� � ����� ,! ��� ��3

!",;.)<1

!",;).<1

!",;<.)1

!",.);<1

!",.<;)1

!,";.)<1

!,";).<1

!,";<.)1

!,".);<1

!,".<;)1

!;".),<1

!;".<,)1

!;",.)<1

!;",).<1

!;",<.)1

!.",);<1

!.",<;)1

!)",<;.1

!.";),<1

!.";<,)1

!)";<,.1

",!;.)<1

",!;).<1

",!;<.)1

",!.);<1

",!.<;)1

";!.),<1

";!.<,)1

,;!.)"<1

,;!.<")1

";!,.)<1

";!,).<1

";!,<.)1

".!,);<1

".!,<;)1

")!,<;.1

".!;),<1

".!;<,)1

")!;<,.1

,.!;)"<1

,.!;<")1

,)!;<".1

Page 30: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

!. �� �������� ������� � ����� )�!� �!

���!/�"� � �!%�"�� �-� ����"�� %���"��C 4�� �� �����"%� �� ��*! ��)!"�% ��!�� ��*! !#"$�%���"$ � ����"�� %���"��.)� $�!# ��

K�� �� �� ��� ����� � ���� ����� ���� � ����� ��� ��� �� * � �������� �� ���� ������ �������� �� J � � * � � � �� :%���� ��� �� �� �� ��� ������ ���� ����� ���� �& � � � �� � � � � � � � *�� ���� �� ����� ��� � ������ ���� ����� ������ ����� ���� *� ���� ��� ������� ��������� ���� ���� # ������ ������ ���� ���� �! �� ������ � ����� ��� ���� �" �� ������ 5 ����������

5 J �� C � � �C �& ��� � J ��� +��-

# ��� ���� �, ��� ��� ��� ��������� � �; �� ������ � � �����2 ��� ���� ���� �; �� ���� 5 � � C ������ ������ ��� ���� ������ ���� � ���� ������ �� � ���� ����������� � 5 � � � ��� ��

� ��� � ����� ��� � �� ������ ��� �� 5 ����� �� ���� ��� ���� � �9� ����� �� � ��� ���������� ����� �� # ������ � ��

! � "� " � ,� � � � � �� � �� +� -

���� �� J � � � � � � ��� �� ���� 5 J &' +�

' C �-� � J �� '�� ��������������� �� � �� �%���� ��� ��

� !� ! � "� � � � � �� ! � �� � +��-

���� ������� � ��� � ������2 ���� 5 �� ������ �� !�� J !� � �:������ <1 ����� ���� � ���� � ����������� ���� �� ��� � ����� ��� �

�� ���� � � ���� ����������� � # ������ � �� �� � �� ������� � ���� ����� ���� �� 3+� C�- ������ ���� ���� ����� ������ ��� � ���� �� ���� ������ ��

����# "��� (�!��� '�� ������� F� ���� ���� ����� ��������� � �������� ���������� ��������� �� ���� �������� ��� ���� � ������� �� ����� ������� ����������� ���� �� ������� � ������ � ������� ��� �� ������"��� ������ ������ � ������� ������ 9� ����� �� ������ .� ( ���������� �� ��� ��� ��� ���� ��� �� ����� ����� �� � ��%������ ������ ���� ��� ������ ���� ���� ������ �� � ������ ���� �������� ��� ���� ������ ������� � 3+� ���- ������ �� (������ )�;�! �� �� ����� ��� � !����� ������������� ���� ��� �� ������ ��� �� ���� � � �%��� ����� �� ���� ��� ��� ���� ������� � ������ �� ������M��� ���� ��� �� ��� �� �� ��� �� �� ����3+�9- ���������� �� �� ��� � �� �� ��� �� ��� � ������ � ��� �@ �� ��� ��� ������ � ��� � :��� �� ����� ��� ��� ���� ��� �� ���� ��� ��� ���� �������� � ������ �� ������ �� ��� ���� � ��� � ���� ����� ������� ������ ������� ���� ������ � �� ������ 4��������� ��������� �� ���� ���� �������� �� ���� ����� �� ��� �� ���� ���������� ��������� ��

��� �����

� �� ?�� @ .������ �� � ���� ������� = � � ������� �� ������������ ��� ������������ ��� #�� � � � �� ���� ��

�� ?�� @ A������ ������� = � ���� �� ��� �� ��� ���� ������ � �� � � � �� ����#���� ��� ����� &�� ���� ����� ��� #�� �� � ��� ��B����� �� � � � �� �� �� ���������������� ���������� �� �� &'� ,��� ��� � ��� �������� �� ���� ���������� ������ ���� ��� �������� ��� �� ����� �� ������ ������ � ��� #�� � � ��'

Page 31: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� !)

��1�" �!�"�� �!�"�� "�! $�Æ$"��%���"�% ��$�"���)�"��"���3� ����"����!�"� $���%�. "#�3��"# �����"������

� � ?��� @ ,�� ���� � � ���������� ����������� � ���� ������ � � ����������������� �� ��� � ���� � ���� ������������ ���� ��� �������� #����� ���� � ��.������ �� � �� �� ��� ���� � � ��#�� ���� ����� �� � � � �� ���� ������ � ������� =� �� ���� � � � � �� 2 �)� � � � � � � "��� �� ��� ���� � 6)+74�<C�D�� ?�� @ 0�������E��� ������� 6� ������� �� � �� �� ��� ���� � �� � � � �� ���������� � ������� = ���� ���� � � � � �� �� ��� � ������ ��� � �� � � � � �� � � F ������ G � � �G �� 2 � ��� � � � � � � �� &,�� ���� � ���� � ���� ������ ��� � ������� � �������� ����� �

��� � � � � ��

�2

�9

��9 � � � ��9F

��� .H� 7�)��!&�'�' "��� �� ��� ���� � 6)+)74�<7D

�� ?��� @ ��� �� ��� ���� ��� #������ � ��� � ���� � �������� ���� �� ������� = �� &�' ���� =�� &�' ���� =6� ���� ��� �������� ���� � � � � �� ��� �������� � ?�� @ 1���#� ���������� � ����� �� ��� ���� � ���� � �������� ������ ������� = �� &�' ���� =�� &�' ���� =6� ���� ���� � � � � �� �� � ������� � �������� �� ������� +� �� ��#� ��� ��� ��� �� ���� ��� ���� ���� � � � � �� �� ��� ������� ������ �� � �� &�� �' � ) ��� ?�� @ "��� �� ��� ����� �� � � � � ��� �#����� � ���� � ������������ ��� ���� ����� �� ���� =� ���� ������� = �� ����� ������� � ��� � ������&�' �� � )� � � �� � � � � � � � D &�' �) � )� � � �� � � � � � � � D &' �� � )� + � �� � � � � �� � � D

� �� ?�� @ ,�� ��������� � � � ������ ��� ��� ���� ������ � ��� ��� � �� �������� -��������� ��� #�������� � �)� �� �� 6 ����� )� )�� )��� )��6� )�6� )�6�� )6� )6�� )6���

�� �)� �)�� �)�6� �)6� �)6�� ��� ��)� ��)6� ��6� ��6)� �6� �6)� �6)�� �6�� �6�)�

6� 6)� 6)�� 6)��� 6�� 6�)� 6�)�� 6��� 6��)�

��� ���� ������ ������ � ������� = ���� �������� ��� #�������� � � ��#�� � ���������� ��� � � � � �� ��� ?�� @ ����� ��� ��� ���#� � �������� ������ �� �������� � �������� ��� �#�������� � � ��#�� � ������ ���� ��� � � � � �� � ��� ����� ��� ����� ������� ������ ������� ������ � ��� �������� � �� �������� &-� �������� ��� �� ��� � �� ������������� ������� ������� �� �� �#������� � ��� )� � � � � 4 �'�� ?�� @ "��� ��� ��� #�� �� � ���� � � � ��� ���� � � � ��� ��� ���� � � � �� �� ��� ��� � ������� /� �� ���� � � � �� 2 )� � � � � �� ��� ���������D

��� ?��� @ 8� ���� ����� �� ��� ���� � ������� / ��������D & �� �� ����� � ��'

� ��� ?�� @ "��� �� ��� )�������� ���� ����� #������ �� &�' ������� =� &�' �������� /� &' ������� �� �� ���� � � � � �� 2 ��� � � � � 4 D ���� �� ����������� ������

�� ��#� )������ 2 H �����

����

����

����

����

����

���

���

����

��I 2 H ��

������

���

���

���

����

����

����

����

���I�

�� ?��� @ &I����� 0������� )4�+�' ,� � � �����J �� ���� � � � �� �� ��������� )� � � � �� ������� / ������ �� #������� ��� �9�� ���� ������ �� ���� ) ������� �F ���� ������� ���� ����� �� � � � � �)�

��� ?��� @ ,� � � �����J �� ���� � � � �� �� ��������� � � � � � � �� ������� /� �� ��������#� ������� 2 � �� ��� ��������� � ���� /7�

Page 32: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

!< �� �������� ������� � ����� )�!� �!

G������"�)� � ����"������/ � ����"������"$�� $/$!�!���!���3$�*�/ �"����� ���"� ��"%�� � ����"���$��)/�� �!��� �"$��$����!���%%���$1!/7"��"$� *�",����4�""F)3!�� 4���

��� ?�� @ &������ *����� )4<6�' ��� ���� ��� K��� #������� � ��#�� ������ � �� ������� /�

� � ?�� @ .������ �� � ���� ������� / � � ������� �� ������������ ��� ������������ ��� #�� � � � �� ���� �� &,��� ������ �� ����� � � ������� )�'

� ��� ?�� @ .����� ������� / � ���� ��� �� ���� ����������� ��� � � � ��� �� �#������� ��

�������� ���� �� � � � �� �� #������ �� ���� /�� &,�� ��#���� �����%�� ��� 2 � �� ��� ���

�� �� 2 ��'

��� ?�� @ &������ �������������' 1�#��� �� ����� ��� � �������� &��)'9�� ���� ������� ���� ��������� ��� ������� �������� ���� � ��� #������ �)� � � � � � F ���� ���� ��� ����� � �� � � � �� � �� � � � �� ���� �� ��������� �� �� � � � �� �� ���������� ,������ ������ &)�6+� )6�+� 6)�+' ��� �� �������� �� ��� ���� � 2 +�

��� ?�� @ ����� � �� �������� ���� ��������� ��� ���� ������ � � ������� ������������������ �� ��� ������ � ������� ����)�)=�

� �� ?�� @ ,�� �� �� ��� ���9 ����������� �� �� ��� ��� � ���� �� ���L� ��������� ��� ��������� � � � �������� �� �#�������� ����������� �� � ������

������������ ������ � ���� ����� ���� ������ ����� ������� � ��� ��������� -��������� �6) �� � ������ ���� ����� ���� ��������� ��� #������ � ��� 6� �� ��������� � � � � �� � ���� ��� �� ��)� ��) �� �))� � � � � ))) �� ))�� 1������ ������ �������� ���� ��������� ��� ������ ���� ������ � �)� �� � � � � � � ����� ������� ������ ����������� �� ��M���� �������� � ������� ��� %��� ��������

��� ?��� @ &.� /� I���#�� )4�)�' 8� ���� �� ���� ��� ��� ��������� &�' ��#��� ����� �D

��� ?��� @ ,� � � �����J �� �� ��������� ��� � �� ��� �� ����� �� �� ��� � �� ����� ����� �G )�

�� ?��� @ ,� � � �����J � �� ��������� ���� ��#� �� �������� ������ ����� 2 �� �2 � ���� � �2 ��

��� ?�� @ ��#� ��� ������� ���������� �� ���� � �� �� ���J�' $%&' G (G )('G �*+% 2 �*&%,��' -%+*%$G *&%$ 2 �&(+,� &/���� I�1����� )4��'' './��G '/�0� 2 �..��0� &"���� .������� )4��'�' .*12/%G .*12/% 2 31(+)%)� &I����� A� "� ; ����� )4��'�' 4�$5 G &G .5�2$ 2 $122%+� &;� :�������� )4�C'�' $()1+&G 1+(&1$ G &%2)1&% G 2/1)* 2 2/(&%)$� &"���� .������� )4<C'�' %(+)5G (�+G 4�+% G 6()%+ 2 &()1+%� &8����� $�M�� )4��'�' (&G (..%/%+()�&7G �&4%+%&)�(/G %&7�&%%+�&7G )(/%G %/�)%G 7+(&)G 4%%G

%)G .%)%+( 2 (+)�4�.�(/ G �&)%//�7%&.%��' 5(+',G &%$)$ 2 &($), G 5%+'$�

� ��� ?��� @ 1�#��� � ���� ��� � �� �� ���&� � �' ��� ���&� � �' #�� ��� #�������� ������ �� � � � ��� � ��� � � � � 4 � ��#�� ��� ������ �� #��� � 2 &��� � � � � ���' ������ %���������� ��� � � �� ��������� ������� &� � � ���� �� ����� �� �������� � �� � ���� ���� H ���� ���� � ����� ������ � ���������� �� ����� ����������� �� ��#���� � ��� �������� ���� ����� ��� �� � �� ��� �� ����� ��� �������&� � �' � � � ���&� � �'�'� � ?�� @ "��� �� ��� ��H � ��������� �� ��� �

&��5(1 � 8(1(� � *(51 � �*/*8(� � /(&(� � �(1�� 5(6(�� 2 �D

��� ?� @ ����� � � �� ������#� ���������� �� ���� ��� ���� ��#� %#� ��������

Page 33: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� !1

���"�"�����*!/ ����/��� �!�"�!"$��") �!��� �"$�����/��%%���4!!����"%������/�����"%��������/���3�"%"��! ��EE!��" � ��*!�.���� ���"� ��"$3��$3�� *�����3� "��

��� ?��� @ ��������� � ��� ������� � �� �� ��������� � ��� ��� � 2 ��G� � �G�� ������ � � � � � �� � �� � � � �������� �� ����� ������ ���� �� �&�' 2 �&��'G � � �G�&��' ����� � � �� ���������� ����� �&�' �� ��� N����O � � �� ��� ���� ���� 1 ��� �� ���������� ���� ����� �� �� ��� "���� �� ��� �� &)4+�'� 6C� +)�!+)+� ����� ��� ������� ��#��� )6%&), 2 $%0%& G $%0%& G $�� ��� � ��� ������

�' -��� ��� ��������� ���� ��� � ��� �� � �� .������ ���� ) � � � ���

�' "���� ��� ��#� ��� ������� %�75), 2 4�4), G )6%&), G &�&% G *&%� -��� ���� ��� �� � ��������� �� ) � � � )�� �� ���� ��� ����� ��� ��������� ���� �������� *&%� )6*� � � � � &�&%),&�&%� *&%51&'+%'�

� ��� ?��� @ ����� ��� ��� ���#� � �������� %�� ��� �H ����� � ��� ��� �� G � � �G�� 2 ��� G � � �G ���� ���� ��� ��� ������������� ��� ������������� �� � �� .����������� ���� � � � � ��� ���� � � � � ���� ��� ������� �����#� �������� ���� ���� ��� -� ��������

)6%/0% G &�&% G )6* 2 %/%0%& G $%0%& G 4�0% F

��� ���������� �� �� ��� �� � ���

� ?�� @ ��#� ����� � ���������#� ���������� �� ���� � �� �� ���J�' )6*� )6* 2 $31(+%� &8� .� 1 ������ )4�4'�' 5�2� 5�2 2 51++(,� &"���� .������� )4��'' 2�� +� + 2 (+%(� &;���� ;������� )4C)'�' &*+)5�$*1)5 2 %($)�6%$)� &$� P���������� )447'6' &(175)� &(175) 2 -%+* � -%+* � -%+*� & ��� "����� ���6'

�� ?��� @ &$� P����������' "��� �� ��� ��H � �� ��� � (� .G'�%4G7�5� 2 )����� �(� � � � � � 2 �)� � � � � 4 D�� ?��� @ &8� .� 1 ������ )4�)�' -��� ��� ���� � ��������� )�� �� ��������� ��� � ���� ��� � ����� ��� � ���� ����� � ��� ������ �)� � � � � 4 � -� �������� )�� 24) G 7�+��<6C� ,�� �� � ���� �� �� ������ ��� ������

� ?�� @ ����� ��� ��� ���#� � �������� %�� ��� �����#� �������� ���� ���� )7� ����&�' ���� �� ����������� �� � � � ������F &�' ��#� � ��H � ��������������

�� ?��� @ I��� ��� �H ���� %0%& G *'' G 2+��% 2 � ��� �� � ���� &�' �� ������� 7�� ����F &�' �� � ������ ��� �����

� �� ?��� @ ,�� � ��������� � � +� �� ��#� ���� ��K����� ���� ������� ��� ��� ���� �� ���� �� &�'� 8� ���� ��K����� ���� ������ ��� ������� �� ���� �� ������ ��� #������ ��� � ������ �� �� &�'D

� ?�� @ -��� � ���� ����� �� ��� �� � � ��� � ��������� � ��� +�+ ������������

� # " !

9 : ; <

= > � �

� � �

������ ��� ���� ������ ���� ���� ����� ��� ������ ����� � N����O �� � ��� � � ��������� ���� ����� � � ��� � ��� � ��������

� �� ?��� @ 8� ���� ���� ������ �� �� ��� ���� �������� 0 � 8D .���������� �������� � ���� � ���� �� � � ���� ?��� @ /�#� ���� ��� �#����� � ���� � ������������ ��� ���� ����� ���� ���� Q��������>� �������� &��' �� ������������ ���� ) � )�)�7�

Page 34: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

"/ �� �������� ������� � ����� )�!� �!

���)�"��"���3� ����"��������3� "���1"��"�%III�"�!��� �"$��)� �$��"�! �! ��$�"��

�� ?�� @ "���� ��� ��� �+ ���� ������ ��������� �� � 2 + �� &�' Q��������>������ &��'F &�' 8���>� ����� &��'�

�� ?�� @ ��� ���� 8���>� ����� &��' �������� � � #���� ���� ������

� ��� ?� @ 1����� �� �������� ���� ��������� ��� �#�������� � ��� )� � � � � �� ) �������������� M �� �� �������� ���� ���� ��� �� #������� � ��� ����� &���������� 4�' ���� 0�������E� 8���>� ����� &��'� �������� ��� ��� ��� �� ����������� � � � ���� � �� ����� �� � � � ����� -� �������� �� �� ��� ���� � 2 7 ��� 2 � ��� ��� %��� �� �������� � ��� �������#� ���� ������ �)�6+� 6)��+� 6��)+� 6�)�+�+�)�6� ��)+6� �+)�6� �+�)6� 6+�)�� )+�6�� )6�+�� )6+��� �6+�)� �6+�)� ��+6)� ��6+)�)�6+�� +�6)�� +)6��� +)�6��

��� ?��� @ ����� � � ���� ����� �� ��� ���� ������ �� ���� �#��� �&�� �' ����#��� �&�� �' �� ) � � � � �� � ��� � ������ � 6�

�� ?��� @ ����� � � ���� ����� �� ��� ���� ������ �� ���� �#��� �&�� �'� �&�'���� �&�� �'�&� � )'� �� ) � � � � �� � ��� � ������ � 6�

��� ?�� @ "��� ���� � ������� ���� ������ ��� ����� ������� �� ��� �������� ������� 0� �� ��� ���� ����� � Q��������>� ����� &��' � ����� � ��� ���� ������ ��� ��#���� ��� ����� &�'D

��� ?�� @ &�' "��� ��� ��� ������ � � � � � ���� ������� 5 #����� ��� ���� �����6)+74�<C�D &�' "��� ���� ����� �� #������ ���� � � � � � 2 6)+)7����D

� � ?�� @ ,� � � �����J "��� ������� 5 #����� �� � � � ��� �� ��#� � � ��� �� ������ �� �� � ����� �� ) � � � ��

� ��� ?��� @ .������ ��� � ���� � ����� ���� ��� ���� � ������� 5 �� ���������� ����� � ��� � ����� !�� !�� � � � � !�� ����� !� �� ��� � ���� � ���%��� �� � � � ������ ������� ��&��� � � � � ��' �� ) � � � ��

� ��� ?��� @ ������ ��� � ����� ����� � ������� 5 ��� ������� =� �� ��� ������� ��� ����� ��&��'� ��&��� ��'� � � � � ��&��� ��� � � � � ��' ������ ��� �� ��

� ��� ?�� @ ,�� ����>� � ������� ����� �� ��#��� ������#� ���������� ���� �������� 5 ����������� ���� ������ ��� ����� � ����F �� ���� ����� �� ������� �������#�#�� �� � ��� ����� �����%��� ������ ����� ��������� ������ ���� ������� � ����������� � )��

.����� �� ���������#� ������ ���� ���� ������ ��� ���� � ������ -� ��������� � � ����� ���� ��� � ����������� ���� � 2 ) ���� $%&' G �*+% 2 �*&%,� ������� ������� �7�

�� ?��� @ .������ ��� ��� � �� ��� �� &��' ����� ��� &�'�

��� ?��� @ ,� � � �����J �� ��� ���� "� 2 ��&�� �'� � � � � �&�� �' ��� � ���� ����� ����� �� � � ��� ���� ������� � ��� � ��� ���� "�� 2 ��&�� �'�� � � � � �&�� �'� �

� ��� ?��� @ "��� ���� ������ �&�� �' ��� �&�' ����� ���� ������� 8 �� ��� ������� ���� ����� &��'D ������ ��� ��� ����� �������� ���� ������� /�

� �� ?��� @ &-� I� �#���' ����� � � ���� ����� �� ���� ������� 8 ���� ����������� ���� ������ �� ������ ��� �9 G#+&�� �'9- ���������������� ?�� @ " �� ������� � ��� ������� �� ���� �6 ��� � ��������� ������ ��������� � � � ������ � ���� � � � ����� ������� � � �������� �����D

��� ?�� @ ������� ��� !�������� ����� !�������

$�&%' 2 ����� � %�� �9 2 � �

Page 35: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� "

0"���"A1B � ����"����!"$� �4���.-���!/�"� � �!%�"�� ���/!/ %���...��/ $�� � � ����"���.��,�$�� �������"�"���� "!���"�� $"$�"�...�!�� �8��$

=�� �� ��� �� �� ���� ������ � ��� ��������#� �������� � � ���� �� �� 2 ���������#�� � � �� =�� �� ��� &� �� ��� �������� ���� ������ ��� �� % � � ��%��

� 2 &����� �&������ & 2 �� �&���

-� �������� �� �� �� ��� B�� ������� &) ��)'&� ���' � � � 2 &� �''&�' ��� �� �� 2 &� �'���� �� ������� . �� ������� ���� �� 2 � �� � � � � �� ���� � ��� & ��� ��������� � �� � � � ���� ��� �� � � � ���� ����� ���� .7 ��� ���� �������� % ������

�' /�#� ���� & ������ ����� 2 ������� �����

�� &&�����'

����

�' 3�� ��� ��� �� � &�' � ��������� ��� #������� � ������� .�

� � ?��� @ /�#� ���� ������� . ������� #���� �� ���� .7 �� ������� ��

���� ?,������� ������@ �� � � �� ���������� ���� � �� �� � 2 � � �� � � +� � � � �&� � )'� A�� �� � .��

��� ?��� @ "��� �� ��� �#����� � ���� � ����������� ���� �� ���� .7D

��� ?��� @ ,� � � �����J �� ������� . ������ ���� �� � � � ���� 2 � � � � � ���� ���%��� ���� ����� #������ ������ ���� �� 2 ��

��� ?��� @ ��� � ���� ��%�� ��� ��� � � ������ ����� �� � ����� ��� ( � (��������� � ��� ( � ��(� �� ��� �� ��%������ ����������� ��K�����D

� � ?�� @ "��� ����� !�� ������������ �� � ��� &(�� (�� � � � � (����' ���� ��� ����#��� ���� ����� � �)� �� � � � � � ��� ��� ��� ������� ���� (� ��K��� ��� ( ���� ��� ��

�� �� ��M���� ������������ �� �� ��� �� �������� �� � 8��������� �� �� � ��������� ����� �� ��� �� � � ��� ���� ������ � �)� �� � � � � � � ���� ��� ��) ���������+&) �'� &� 6'� � � � � &��) �'-� ,�� ����� ��#����� � � � � 0��� ��� �� ��� ��H ��� ��������� �� � � � ���� � � ����

( ���� ��� �� 2 &� �G)'(��

&��� ����)�)!&��'� ���� �������� ��� ����� � ��� ���� �� ������ ��� �����' -��������� -��� �6 ��� ������� ��� 0��� ��� ��%��� �� ����� ������ ���� � 2 +F �������� ��H ��� �� &6�)6)�6)' ��' -��� ��� 0��� ���� �� ���� ������ � �)� �� 6� + ��' ,� 0��� ���� ��� �������� � �� �H �#����� �� ����� ����� ��H ���� �� ��������� ��� ��� ���� �� ��� �������� &� � � � ����� � � � ���' ���L� ��#�����&���� � � � ��' ���L� ������������ &&���'&���' � � � &������''� "��� ���� 0��� ���� �� &�' ��� �H �#�����D

���� �� ������� / ����� ����� 8��������� �� �� � ����� ����� ������� � -��� 7!)�

��� ���

�� ��� �

���

��� �� �

�� �

���

��� �� �

�� �

� ��

� ��

���

���

� ��

� ��

���

���

� ��

� ��

��� ���

Page 36: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

"! �� �������� ������� � ����� )�!� �!

��/ $�� � � ����"����� "!���"�� ����.���*!/ ��/�� �����"!!"� �����!"$��4"��� ������ �!J �1��"�1�)����� %���

�� ?�� @ ����� ��� ��� ���#� � �������� � "��� ���� !�� ������������ �� ���� � 0������ ����� ���� ��� %��� ���� ����� (���� �� �� ��H ���� � �� ��M���� � ��� ����������� ����� (�� �� �� ��� ��� � ��� 0��� ��� �� � 2 + ���� ����� ���� )�6+�

� �� ?�� @ "��� ���� ������ �� �� ������ �� ��� %��� ������� � � 0��� ������ ������ �� )� � � � �D

� ?��� @ .������� ��� ���� � ���� � 0��� ���� �� ���� ������ � �)� �� 6� +� 7 � �� ?� @ N� ��� 0���O �� �� ���� ������ �� � 0��� ��� ���� ��� ���������������� ���� ��� 2 � � ) �� ��� �� ����� ��� "�������� ��#� ��#�� ���� � ���� ����� �� ��� � � 6� 8� ���� � ��� 0��� ��� ����� �� � 2 7D

�� ?��� @ -� ���� �������� ! �� ����� � 0��� ���� ��� �� ��� ! ���������������������� ���� ������ � �)� � � � � � D &.������ ����)�)!�< ��#�� ��� ����� � �������� ������ ��� �����'

� ?�� @ .�����>� ���� ����� � ������ ������ ���� � 0��� ��� �� ���� ��������� ���� ��� � � ) ��������� ��� ��� ���� ������������ &) �'� &) 6'� � � � � &) �'� -��������� -��� �+ ���� ��� ����#��� ����� ���� � 2 +� ����E� ��� 8����������� ��� � ���� ������

��� � �� � �� �� � �� � ���

� �� � �� �� � �� � ��� ���

��� � �� ��� �� � ��� ���

��� ��� ��� � �� ��� �� �

��� � �� ��� �� � ��� ���

���

���

���

�� �

�� � ��� ��� � �� � �� �� �

���� ��� ,�� ������ ����� �� ���� ������ � �)� �� 6� + � ��������� �� ������� ������������ &) �'� &) 6'� ��� &) +'� ����� �� � ������� �� ��

�� ?�� @ ����� ��� ��� ���#� � �������� %�� � %���������������� 0��� ��� ��� 2 7 �� ���� ��� ���� ����������� &) �' �� 6� ������ �� � � � � 7�

�� ?�� @ &R����>������ ��� =���#���� )4�7�' =�� ) �� ��� ������ ����� �� ������� ������ � �)� � � � � � � ���� ��������� &��� � � � � ��' ����� ��� �� �� � ������������ & � *�'F ��� ��� + �� ��� ����� ���� #������ �)� � � � � � ��� ����� � ��� *� ��) � � � �� /�#� ���� ) ��� � 8��������� �� �� �� ��� ��� �� + �� �������&-�� �� �6 �� ��� ������ ��� ���� + �� � ����F -�� �� �+ �� ��� ������ ��� ���� +�� � N�����O'

� �� ?�� @ �� � � +� ��� ������� �������� ��������� ��� ���� ������ +�+�+ � � � +�

� �)� �� 6� � � � � � ���� ��� ����� ��������������$ 2 &) �'&6 +'&7 <' � � � � � 2 &� 6'&+ 7'&< �' � � � � � 2 &6 +'&7 <'&� C' � � � �

��#�� �������� $ ��� � ���� � ��� ����� .������ ��� �� �����

��� ?��������E��@ ��� +� � � �� ) � � � �� �� ��� �� � �� �� � � ��� ������� � �� G ) �� � � ���� ,��� ��#�� ������� /� � � ���� ����������� ) ������� � �� "� ���� ����� ���� �������� �� � � ����� ���� �� ��

Page 37: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� ""

$����"��!�"� $���%�0"��"% �3��� ������ "!���"�� �������1"�

��� �� ���� � � �����#�� �� N#�����O �� � � � ���� �� ���� /�� "� ���� �������� ��� #�������� &����� �'�

��� ?��� ��� ,�@ ��#�� ������� / ������ �������� � ��� ���� ������� � � � ���� ��� � ��� #�� � � �� �� � 2 �� ���������� ���� � ���� &������� ����� ��� �K�� � ���� /7' ��� ������ ���� ����F �� � � � ��� �� ��� �� ���������� ���� � ������� /� �� � 2 ) &� ���� ������� / ��� ����������'���� � , � � ��� � � (6� Q�������� ���

� ���������������� , � ���������������F

����� ��� ��� �� �������� ��� ������� ����������� �� ���� /7�

�� ?:�����@ :���� ��� ���� ����� +� � � � +�� ,��� � � (7 �� +� 2 ��� +� 2 ,�

��� ? ���� $� ���� ��@ ���������� +� � +�� + � +� +� � +�� � � � � :����+� � � � +�� ,��� ���������� +� � +� + � +�� +� � +�� � � � � ,���������� +� � � � +� 2 ) � � � �� �������� ��� �� � (6�

��� ? ���� � � ���� ��@ ���������� + � +� +� � +�� +� � +�� � � � � :����+� � � � +�� ,��� ���������� +� � +� + � +�� +� � +�� � � � � ��� ��� ��� (��

���� ��� %��� ���� ��� �������� ���� �� ���%�� � ���� +� � � G ) � � ����� � � �� ���� ()� ��� �� ��� NB��O ���� ������

$� 2 &) �'&� ��)' � � � � �� 2 &� �'&6 ��)' � � � � � � 2 &� ��)'&6 ���' � � ���� ��� ������� � $� �� � �� ����� (+ ��� (7� �� ���� ���%����� ���� (6 �� �� �� (7 �� +� 2 ��� +� 2 ,�

� �� ?� @ ,�� �� )������ &�' �� �� �������� �� �!� ���� �� ��� ����#� ����� ������ � �)� )� 6� + J

))6+ � )6+) � 6+))� +6))� 6))+� ))+6� )+6)� +)6)� )6)+ � 6)+) � )+)6� +))6� ))6+�

A������� �)� ) �� �)� � ������ ���M��� ����� ��� �� ������� � 8��������� ���� ��M ����� ��� �� � ��� ����� ��� � �!� ���� �� ��� ���� ������ � < �������� ������� �� � ������� ���� ����� � � 6<����� �� ��� ���� ������ � �)� )� 6� +� 7� < D��� ?�� @ 1�� ��� ������ ����� ���� ��������� � 2 &) � � � � �' ��� � 2 &) �' ��#� �8��������� �� �� �����#�� � � 6 �� ��D��� ?��� @ 0�#�� � ������ ����� ���� ��������� &��� � � � � ��'� ��� �� ���� ��� ������� �� ,� &-� �������� ��� � ��� � �� ������� �) ���� ) �� ��' /�#� ���� ���8��������� ���� �������� �� )� � � � � �� ) � �� ��� �� � ���� ����� ���� ����� , �� �

� �� ?�� @ =�� �� &� ��� � �� ���� ������ � � ��� �� ����� � 2 + � -� �� ������ � 2 � ���� � + ��� � 2 & ���� � -� ��� ���� ��� ���� � �&� �� ����' /�#� ���� ��� ����� ���� ������ �� &� � ��#� ��� ���� ����F ���� ��� ���� ��� ����#�� � ��� ��� ���� ���� ����� ��� �� ���� �� ��� ��� �� ��� ���� �����#� �� �������

�' 1���#� ,����� A ��� ���� &�'�

��� ?�� @ &A� � A������' �� ���� ���� �& 2 &� �� ,����� A� ��#� ���� �8��������� �� �� ������ �� ��� ��� �� ����� �� � � ���� � � � ���� � � � � .�� ���� G � � �� ����� &� � 2 /�� / 2 �&�� ���� A�������� �������� � ��� �� � �� ������ &�/��

Page 38: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

", �� �������� ������� � ����� )�!� �!

�"$�� �����������!/ 1�"%��J� �����������������!/�"� � �!%�"�� �.�H�����%������!!!��1"�%����1"�%���"�! ������"�")����!�%"$�! ���"�%.���1/

��� ?��� @ ,�� ������� �� � 0�0� ��� %� #������ & � ,' �� � � � %� � � , ��� ��� ��� & � ,'� & � ,'� 2 +& G)' ��%� ,-� & � ,'� & � ,'& 2 + � &,G)' �� �-�/�#� ����� �� % � ) ��� � � )� ��� � ���� � 8��������� �� ��� � ���� ������� ��

�������

�1

�H��+&1� �'%� ��- 2 1 I� 1 2 ��&%��'�

� � ?�� @ ,�� ���� � ������ �� )� � � � � <6�� -��� �7 ��� ������ � ����$�������� ����$�%�

���� � �� C � C �� �J �� � ������� �� ���& �� ,�'� ���� & ���� ,���' 2 & �G�� ,�G)'� & �G)� ,�G�'� �� � C� ��� & �� ,�' 2& �� ,�'� 8� ���� � � � �� ��� �������� �� %� � �� �� ���� %�� � 6D

���� ��� ������������ ������>� � ��

�4 �+ )4 )+ +4 ++ 64 6+

7C 76 +C +6 6C 4 + <6

�6 )C )6 C 6 <� 66 �C

7� +� +� 6� 6� �� �� 7�

)� )� � � <) 7< 7) +<

< +) 6< 6) �< �) )< ))

67 6� ) <� 77 7� +7 +�

� 74 7+ �7 �� )7 )� 7

� ��� ?�� @ ������� ��� ���� ������ ���� ����� �� ������� �� &��'� ���� 8���>������ &��'�

��� ?�� @ ����E� ��� � ����� ���� � ��� ������ �� ������� ��� ��������E��� �� ����� ��� ����� �� ��� 9 #����� &���� �� � � � ���� �� ����� ���������'�

��� ?�� @ "��� ��#�� ���� ����� ���� ���� ����� ��� ������� � � � � �� &�2' ��H ����D-� �������� �� �������� � ������ ��� #�� � + ��� �������� � ������ ��� ��������#"!9:;<=� �������� � �� �� ����� � �#"!9:;=<�

�� ?�� @ ��#� ��� ���#� � ������� ���� ��� %#� ���� ����� ����� ���� 3�� ��*+�

� ��� ?�� @ ������� ��� ���� ������ &��' �� ��������� �� � ������ � ���� =������>� ����� ����� ?��� @ ����E� ��� � ����� ���� � ��� ������ �� ������� C)�

�� ?�� @ 3�� ��� �!� ���� � ������� �� � ������ �� ���� � ���� ����� � � &��'���� ��������� ��� ���� ������ � �#"!9:; �� �������� ��

��� ?�� @ � ����� � �� ��� � �������� ��� �9 ���� ������ � �)� � � � � � � � �������� ���� ��� � ����� �� ���������

� ��� ?�� @ �� �� ���� � �� ����� �� �� ���� �9 %�� �� � �� ��� ���� "���>� ��� ��� � �#��� � ��#�� ���� ����� � 2 �� � � � �� � �)� � � � � � ��� �� �������� 2 &�' �� ��� ����� � � � � �9D ;�� � ����� � 2 &�' ��� � 2 ����&�' �� ���� �� ����� �� ��� #&�' ������

� � ?�� @ ������� ���� ������� �� � ����� � �� ��������#�F ���� ��� � , ��� , � 3�� �� ����� � 3� ; � ������� : ��� �� ��H ��� ��� ��� � ������� � ������� �����������

��� ���� �� � , ��� , � 3� ������� : ���� ��� � �������� ��� ��� �������� �� � 3�

��� ?�� @ &-� A �����' ������� ��� ��#����� ������ �� � � � �� � ��� ���� ������#������ �� ������� :� "��� �������� ������� � ���� ��#�D &������ ������� ��#����� ������ &�' �� ������� /�'

Page 39: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� ";

$��"�43��� ��$�"�%����"�! ��"�%���,�$�� �������"�"�����3��4� � ����"���$/$!"$ � ����"������% ���"��$� ����*!"�)�!��"���.

��� ?�� @ ��� ���� ������� : �� �� ��� � �������� ��� ���� � �������� ��������� ��� )� � � � � 4 ��� �� 6�������� ���� ��� �� ��������� �����

� ��� ?�� @ ������� ��� � ����� ��� ��� � � � � �� �� &2'� ������� �� 2 �� 2 )��' ��� ���� ����� � �� N���#���O �� �� 2 ����� -� �������� 4 �� ���#��� ���� ������ ���� P �� ������ �������� &��'� .������ �� � ����� ������� : � ���� ���#������� � ����� � ��� �����#��� #�� ���

�' ����E� ��� � ����� ���� � ��� ���%�� ��������� "��� ��� ��� ������ &2'D' ��� ���� ��� �����#�� ?� � � �@ �� �� � ���� �� �� � �� ��#� 5 � 5G) �� � � 5 � ��/�#� ���� �� � � � ��� �� � ������

�' .#��� ��#���� ������� ��� ��� � � � ��� ��%��� � �������� ���� �������� �

�������� ���� � ���� � � � � � ���� � ���� � ���� ��� �H �#����� � ��� ������� ��������

�� � ��� � � � � � � �� .������ �� � %�� � �������� � � ���� ?� � � �@ �� �� ����� ���� � ��� � ��� ��� ��#� �����#��� �������

�' /�#� ���� ���� � � � ��������� 6 � +! �� ��� ��� ��� � ���� &�'�

�� ?��� @ ������� : �� �� ��� � ��� � ��� ���� ������ ���� ��� 4��������� ��� 4 �� � ��#�� ���� ������ ��� ��� � � � �

�� � � ���� �

�� � ����� �� ) � � � � � 4

&��� ����� 7���)'� ����E� ��� � ����� ���� � ������� : ���� �� ��������� ������� ������ ���� ��� ��� �������� ��� 6��������

��� ?��� @ ����E� ��� � ����� ���� � ������� : ���� �� �� ��� ���� ����������� &�7' � %�� ���������

��� ?��� @ 8� ���� ���� ������ �� ������� : ������ � #����� �� � N�����O���D =�� 8� �� ��� � ���� � ������� �������� � �)� � � � � � � ������ ��� � ����� �������� ���� ��� ��B���#�� ������������� ��� ��������#�� =�� 9� �� ��� � ����� � � �������� ���� ��� ��������� ������� ���� � � � �����#�� � � �� .��������� ������� � ���� � ���� � ��� � �������� ���������� �#������ #�� ��� ���������������� �� ����� � 8� ��� 9��

�� ?� @ /�#� ���� ��� ������� ���� �� �� ��������� �� � � � ��� ���� ����� � �� ��M���� ������������ ��� ���� �� ��� ����� &,�� ������� ) � �� 6 � +���� ���� � ������ ����������� ��� ���� ���� ������ �� ����#��� �#�� �� �� ��������M���� ������ ��� �� ��� �� � ��� ��� ����#��� ���� ������ ��� ���'

� ��� ?�� @ ��� ���� �� ��� ��� � ��������� ���� ��� �������� �� &�7'� ��� ����������� �� �� ��������� ���� M �� �� ����������� ��� �����

��� ?�� @ 1�� �� �� � �������� ��� ��&��'� ������������ � �)� � � � � � � ������ ������ � � � �� � � ���� �� � �� � � � � � � � ��� � ?�� @ 1�� �� �� � �������� ��� ������ ������������ � �)� � � � � � � ������ ������ � � � �� ���� ��� ������������� ������ � � ������ ������

��� ?�� @ 1�� �� �� � �������� ��� ������������ � �)� � � � � � � ������ ���� �� � � � ��� � ���� �� �2 )� �� �2 �� � �2 6� � � � ���� ?�� @ ����E� ��� �������� � ����� ���� � ��� ����� �� ��� ���#� ���������

��� ?�� @ 0�#�� � � 6� ��� ���� ��� ������������ � �)� � � � � � �� �� ����������� ������ �� ��� �� ������������ ������� #������

�� ?�� @ 1�� �� �� � �������� ��� �������������� ���� ������ � �)� � � � � � ������� ���� �� � � � �� � � ���� ���� � � � � �� �2 �)� � � � � � �� ) � � � ��

��� ?�� @ 1�� �� �� � �������� ��� �� �������� � �)� � � � � � � ������ ���� ���� ������� �� � � � �� ���� ��� � � � ��� 2 ) � � � ��

Page 40: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

". �� �������� ������� � ����� )�!� �!

)� � ����"���4!!3*�!��$�*�!��$��")��!4�1 ������"�")$� �!����4�/����4���0"�2"*���$$" �� *�

��� ?�� @ ��� ���� ��� ��#� ���� � �)� � � � � � �� �� ��������� �� ������ ����� �� ������������ ������� #������

�� ?�� @ ��� ���� ��� �#�� ���� ������ � �)� � � � � � �� �� ��������� �� � �����#� ��������� �! �$��� ��������� � ���������

� ��� ?��� @ ���� ����� �� � � � �� � �)� � � � � � �� '���&�������� �������

��� 2

�����

&�G )� �'���

-� �������� 6)+� �� ������������ ���� � 2 +��' /�#� ���� � ���� ����� �� ������������ ���� ��� + 2 ���' /�#� ���� �� �� � � � �� �� ������������� � ��� ��� ��#����� �� � � � ��� ��� ��������&�G)���' � � � &�G)���'� ��� ��� ��#���� ��� � � � ����

' 1�������� ��� � ���� � ������������ ���� ������ �� ����� #�� �� � ��

� ��� ?�� @ '��� ����� �� � ������� � ���� �� ��������#� & � , ��� , � 3 ������� � 3' ��� ������ & � , � , � ������ ����'� "� �� ����� � , �� � , ���, � F � , �� � , ��� , �� � ,���� ��� �������� ���� ����� � ����� ���������)� �� 6 � ������

) � � � 6� ) � � � 6� ) � � � 6� ) � � � 6� ) � 6 � �� ) � 6 � ��

� � ) � 6� � � ) � 6� � � 6 � )� � � 6 � )� 6 � ) � �� 6 � ) � �� 6 � � � )�

�' .������ �� � �������� ��� ���� ����� � �)� � � � � � �������������� �� ��H ����� ������ ��������� �� ��� ������ � � ��

�' ���� ���� �� ��� �� ����������� �� � ��H ��� �� � � � �� ����� �� 2 � �� ��� ������� �� � � ������ -� �������� ��� �������� ���� ����� � �)� �� 6 ����������#��� ���� ��)� �))� �)�� �)�� ��)� )�)� )��� )��� ��)� ))�� )��� �)� �� �������� -��� � ������ ��� � �������� ��� � � ��H ���� � ������ ��

� � ?��� @ ��� ������� )�7&�' �� ��#�� ���� � 0�������� ��D

� ��� ?� @ &*�� 8� ������ )4�6�' , ���� ��� �������� ���� � N�������O ������� �� S��� � ��� � � ���� ������� �)� � � � � � ��� ���� ���� ��� � �� � ����� ,����� ��� �� ��� �� � � )� ���� � ��� �� � ���� ��� � � ���� ��� � �� � ��� ������������ ������� ��� ���� ����� ��� �� � � � �� � �� � � � ������ � � � ��� ����� � ������� �� ��� �� )� -� �������� ��� ������ ��H ���

6)+7� � +)67� � 76)+� � �+)67 � +�)67 � 6)�+7 � �)6+7 � )�6+7

����� � ���� � 2 7� "��� �� ��� ������ ��H ��� ������� ���� � 2 )6D

��� ?�� @ �� ��� ������ ����� ���� � ������ ��� ������ :&�'� ��#� ���� :&�' ����� � )���� ?�� @ -��� �� ���� ��� ���� � ��� � ��� ������ � ���� :&�'�

� ��� ?�� @ -��� ��� ���� ������ �� � � � �� � ��� � � � � 4 � � �������� ��� �� �� 2 ��� 7� �� C �

���� �� �� 2 ��� 6� < ����� �� ��� �� 2 �6� +� 7� � �

���� �� � 2 ��� �� C � �� � ����� �� �������� �� ��#��� ����� ������� � ���� �����

Page 41: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ������� ��� ��� ����� ")

� ��",���")��! $/$! � � ����"���G�$1���

� ���� ?��� @ ��#���� ���� ������������� ������ � �� ;� �M� ���� ��#� ���� �������� ,�� �������� ��� ����� � ����� �� ��� ���� � � ��� ����� ����� �! �����&

�������� ����� �� �� ;� "� *���� �� ������� ����� ��� &)446'� )+)!)7�� ������� ��� � �9 ������ � � ���� ��� ���� ����� � �)� � � � � � �� ������ �� �� ���� � � � ) ��� ��#� ������ &���� ��� ��� ����� %��� ������� � ��������'� -��������� &)�)6�6' �� � ��#����� ��� � ���� ������ �� � 2 6� ��� �� �� �������������� ��� � � ����

-��� � ��#����� ��� � ���� ������ �� � 2 +� ��� ��#� ���� � � ���� ������� ��� � � ��

� ���� ?�� @ .����� �� ���� ��#����� ���� ������ �� ���� ������ ��4 �M���D

Page 42: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

"< ��!��� � �"������� )�!� �!

K�"!!"��)� $�!# ���)�"�)�"�� ��*! "#�3��"# �� *���� �$��"�! �� * �/�� � �

������ �������

�� ?*� /� $� /�������� �� � �� � &)4<�'� 6))�@ �� ���� ���� � � 6� �� �� ����������� =�!=+ ��J

���� ?.������ ���D@ ��� , � ���� ��� 3 � ��� �� , � 3� ��� ���� � 3� �� � ,���� ��� �� � =)�

������ ?$��� ������� ���D@ ��� � ����� �� � ,� � � � ���� =����� Q����������� &����� ����� ��'� &3� � ,' �� � 3� &,� 3� ' �� � 3� A�� �� � =)�

������ ?-��� ��@ ��� � � �� 6 ��� , � �� � �� , � � ��� � � � � )� � ,� , � �� ���� ������ ���� , � � ,�������� �� � 2 ��

��� ?.��� �������D@ �� , � 3� ��� �� � 3� ���� � ,� �� � � ��� � � =+�)��

����� ?������� �� �@ ��� 5 � ��)F �� , � ��� ���������� ������� 5 �� ) ���� , � ���,��� ��� �� � �� ��� �� � ,�

���� ?;���� � ��#�����@ ��� �� � ���� ��� ���� � 3�

������ ?A�#���� ���� � � � �����@ ��� � � �G�� 5 � �� )� ,���� �� � � 5� ������������ � ��� ��� � � � G )� 5 � 5� )� ��� ������ ���� � � 5� A�� �� � =)�

,�� ������ ����� � � ����� ������ �� �� �� ����� �� ����� ����� (?� � �@ ��� � � � �� � �� ��#���� ��� ���� �� ��� �� �� ��� ������� ��������

�� ���� �� ��� �� ���� �� � �� � � � � � �� ���������F ��� ���� ������ ������������ �)� �� �� 6 ����� ���#��� �� )��6� �)�6� ��)6� � � � � �6�)� 6��)� =�� ���� �� ��� ������� �������� ������ ���� ���

��� ?:�����@ :���� ��� ���� ����� ���� � � � ���

��� ?-��� ��@ ��� � � �� �� ���� � �� � ������� � �� ) ���� ���� � �� � ,���������� � � ��

�� ?1������ �� �@ ��� 5 � )� �� �� � �� � ������� 5 ���� �� � �� � ,��� ������ � �� �

��� ?A�#���� �� � � � �����@ ��� � � ) ��� 5 � � � )� ,���� �� � � 5� ���� �� � ������ � � � G )� 5 � 5� )� ��� ������ ���� � � 5� A�� �� � =)�

� =�� 0� � � � 0� 2 ��� � � � ��� �� ��� ��#����� ������ �� �� ������� 7�)�)!�� ,���

����&�� � � � ��' �� ��� ����������� � ���� H�����

��������

�������

���I� ?��� 8� � A���� �����

���� ����������������������� ������������ � &)C��'� �<6!�<+�@ -� ��������

6)+74�<C� ��� ���� H ����

����

����

����

���

���

���

����

��I 2 � � C9 G <9 G 79 G + � +9 G )9 2 C)7��F ���� ��

��� ������� � ���� ������ ���� ��� �� .H� +�)!&;'�

�� 3�� ��� �� ����� ����&�� � � � ��' 2��

����� �� ? � ��� @

��

���������

�G����&�� � � � ��'�

-� �������� ����&6)+)74�<7' ��

��

�������������

�G � G �

��

�����������

�G � G �

��

�������

�G

�������

�G � G �

�����

�2 6�44)�

�� &�' ���� =� �� �������� �9 ������ ,�� ���������� ���� ������ � �������� ������� �� <��<���� ����� <� �� ��� ���������� ���� ������ � � � � � ��� ������ ?���@��9�,������� ��� ���� ��

��&<� � <���' 2 <� G � � �G <� 2 �9 =��9� ) � =� ) � )��)C�

��� ��� #������ �����&<��<���'������ 2 <�G6<�G� � �G&���)'<��&<�G� � �G<�'� � =&6�=' � ���<<�

?-� ������ ������� ��� A� R���� ���� ��������� � &)44C'� )�!C4� ,����� +�@

Page 43: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� "1

��3� "��#�����"�! �"�C ���"�! �� � � 2"�$���������!!"%���"�% ��$�"���C �$��"8�� � ��"�%.

������������ ��� �#����� � ���� � ���������� �������� �� ���� =+ �� ������������&<� � <���' 2 <� G < G � � � � �� )� ) 2 &=G =�� � �'�� � ��7+6� � ��� �� � �� A� *� Q�������� ?�� � �� � &)4��'� )7�!)77@�

&�' ���� =6 �� �������� ��� �9 � ) ������ � � �� ���� ��� �� �� �#���������� �� �� �� ��� &���� � ��������'� ,��� ��� ���������� ���� ������ ��������� ��� ���� ��

������� )��9 �� ) � � � � ��� )��9 �� � 2 �� 8��� ���

���� �� ��

������� )��9 � =�� � )�674F ������� ) ��� �� ���� � ���� �� �

� ,�� #������

�� �

������ )��9 G

��

������� )��9 ������ � �

�=� �

=� � ��+)C�

� &�' =�� =�&3' 2��

��� 3���9F ���� ��� � ���� � ��K����� ���%��� �� � � � �� ��

�9 ?3� @ =��&3' � � � =�� &3'� ,��� �� ! 2�

����������

������ ��� ���������� <��� ���� �� �����

��� �������� ��� ���� �� ���� =�� ,������� ��� ���� �� ��>+=��&3' � � � =��&3'-�)�

����� >+�

�3���9- 2

� �� �� ��� ������ ��� ��� ���� �� 6�

���

� � )� ����� 6 2�����

���������

���

�2��

���

��������

���

�2�������

�� ) 2 ���

�+� G �

�����G ���

���-� )�

&�' �� ���� � � � � �� 2 ���� � �� � � � � ��� � � � ��� ���%� �� � � � �� ����� ��� �����������������&������'?������ @ � ��� ���� � ���� � �������� ���� �� ���� =6� ,� �

��� ���� �� ��

�������� >+:��&3'-� �����

:��&3' 2

� �����

�������

=��&3'

� ������

&�� � '3�

9

=����&3'

2 =��&3' � � � =��&3'+�� � 3 �&3'-�&3'� ����� �&3' 2=����&3'

=��&3'�

�� ��� ���#�� �� ��� ���� ��� �� ��� �� � ��>++�=�&3' � 3=���&3'-=�����&3'- 2

��+�������

� � )-� ��+�������

�+�� ���

�����-G )- 2 �

�+��� ) G ����

�- 2 ���

������ ���

��

�� �� ��� ������ � ��� ���#� � ������� ��� H ������ ��>+=��&3' � � � =��&3'-� ) ��

�� G � � �G ���

G&���� G ��� G � � �G ������' G ��&���)' G � � �G ��&���)'

�&� � )' G � � � � )�

Q�� �� ��� ���� .H� )���4!&��' ���� ��� ����� �� �) G ������� ���� ����� � 2

������&��� G � � � G ��� '�&�� G � � � G ��'

�� �� ���� &�' ��� &�' �� ��#� � 2 ?�2)@�� ��� ����� �� = � ) � )��)C�C� �� ��� &' �� ��#� � 2 )�&�� � )'� � ��� ����� ���) G ������� )�&�&�

� � )'' � ��+<��7�

�� �� �� ���� � �� ��������� E��� ��� ����� ���� =) �

���� ?:�����@ :���� ��� #������� �� � � � �� � �� � � �� ��� � � � G ) ��� ������ ���������

,��� �������� �� � � � =� *� -����� ��� R� �� R�� ��� ������ �� ��������������� ��� �� ��������! &1������J )C)�'� 77!7��

������������ ��� ���� � ���� � #�������� �� >+=��&3' � � � =��&3'- �� ��� ������� ������ <� ,��� ����� ������ ��� %��� ������� �� *���� ;��� ��� �� ����"������� &)�)6'� /��� �� ������� 4�

�� ��� ?:�����@ :���� ��� #������� �� � � � ��� & � ���� ���� ���� � � � � � ���'

��� ?.��� ���D@ �� �� � ��� ���������� �� � �� ����� � �� ��� �������� � ������� � ���� � � ��� �� � ��� ��� ��� �� � A)�

�� ?A�#�����@ ��� &����� � � � � ��'� &��� � � � � ����' �� �� ���� =+�

Page 44: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

,/ ��!��� � �"������� )�!� �!

�)�0$�� "#�3��"# �� *��!"$�

��� ?-��� ��@ ��� � � � )� �� �� � ����� ������� � �� ) ���������� ������ � ����� ,�������� �� � 2 ��

��� ?������� �� �@ ��� 5 � �� �� �� � ��� ������� 5 �� ) ���������� ���� �� � ���,��� ���������� �� � ���

� � ?A�#���� ������@ ��� &����� � � � � ��'� &��� � � � � ����' �� �� ���� =+� ��� ��� ��� A)�

,�� � ���� � �� �� �� 9 ?3�@ =��&3' � � � =��&3'F ���� ��� � ���� �� ���� ��� ��������

��� ��������

�� ���� � � � �� 2 �)6 � � � �� ���� � � � �� 2 �)� � � � �� ���� � � � �� 2 )&�)') � � � )� �� � � ��

��� ���� &/)� � � � � /�' �� �������� &)� �9� �9� �9 G �� �9� & � G 6'��� �' ������ ����� � 2

������� �9� ��� �� /� �� �������� &� � )'9 ����� ���� � � � � ��

��� "� ���� ��� ���� ����� � ���� 444444� ,�� ������� ��� &�' ��C64)7+<�� ��������� 6F &�' C�7�+�<6)4� ��� �� ��� ��B���� ����������� � ���� ����������

� H ����

����

���

���

���

����

����

����

����

���I �� H ��

������

���

����

���

������

����

����

������

�����

I �� ����)�)!&2;'F &' ���

��� � &� ) � � � 4'�&� ) � � � C'�&� ) � � � �'�&� ) � � � <'� � � � &� ) �'�� ������ 4��6)7<�+C�

�� ,�� %��� ��������� �� �� � �� ��� � � �� ; � ���� � ����� )� ������ ������ ������ ��� � � )� �� ��#� � 2 �� � 2 6� �� 2 � � � 2 �� 2 �� ��� ��� �������� ����� ���� � � 7 �� +6�)7< � � � �� ?��� ���� ��#�� &)4CC'� ���� �+�@��� ,� � �� ��� ��������� � ����� /+� /7� ��� /<� ��� �� ������ ��)���G� ����������� � ��� ���� � � � ������ � � )� �� ��� � �� � � � � ��� ��� � ��� � ���� � � � � � �&�� � ������ ���� ��� �� �� ��� ���� ���� � ������� /�'

��� �� H �������

��������

���I �������� � ��� ��B���� 0��� �� H ���

����������

���I� �� ��� � ���� /<

�� ��� ��� �� �� 2 � � ) �� � � � � � ��� -����� �� �#��� �� ����)�)!&2;'� ; ����� 2 � � ) �� � � � � � ������� ���� -��� �� �� �� � � � � %� ,�������� 2 ?����2 � @ G ?���� 2 � G )@ 2 ?���� � �@ G ?����� �@ �� ���� /7� ?��� ����� �� ��� &)4<6'� �C�!�C7�@

� � ���� ?��������E��@ ��� �� � � ��� �� � �) �� ) � � � �F ��� ��� 3 � ���

���� ?:�����@ :���� �� � � � ��� ,��� � � /6�7� �� �� 2 3�

��� ?8 �� ����@ -� � � � � )� � � �� � � � � ) &�� ���� ����'� ��� ���� � �� ��� � 3� ��� #���� �� � � � ��� ,��� ��� � � �� )� � � )� ��� � � /+��

����� ?8 �� ��@ -� � � )� �� � � � � �� ) &�� ���� ����'� ��� �� � ����� ���� � 3���� #���� �� � � � ��� ,��� ��� � � �� )� � � ��

���� ?A���� � �����D@ ��� < � �� G �� � �� < 2 �� � � /<�F �� < � �� � � /���

���� ?�������@ ���������� ����� � ����� ,��� ��� �� � < ��� ��� �� � /���

� �� ?������� ��@ ,�������� �� � 2 )F �������� ��� � � �G )�

���� ?����� ��������@ ��� �� � ��� � � � � � )� ��� � ��� � /+����� ��������� �� � ��� � � �� ) � � � �� ���� /7 �� �� �� ��� � � � � �� G �� � � � < G �� * � ��� �� � *� ��� � �� �� � �� ��� � � �� � <� &��� ������� )+�'

; � ���� ��� ��#���� ��H ���� ��� �#������� �� �� �� ���� �������� ��� �������������%������ �#����� ��� K��� #������� � ��� ������� ��� ���� ����� �� � � � �� ����� ��������� �� ���� �� 0� .����� ?���� � &)4�6'� 7�7!7�<@J

��� ?��������E��@ ��� �� � ��� � �� �� � � � )� ��� 1� � �) �� ) � � � �� ����� �� 2 �)�

Page 45: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ,

��/��!"$����!���!��������!!!�$�����! %��������"��K3$� �!�

��� ?:�����@ :���� ��� ���� ����� �� � � � �� ��� ��� ��#���� ��� � � � �

���

�� ?-��� ��@ ��� � � �� ,��� �� �� 2 �� ��� �� � � � )� �� � ���� � � � � )���� ������ ���� �� �2 �� ,�������� �� � 2 ��

��� ?�������@ ��� �� � �� � )� � � ���� ��� ? 2 � G ��� ,��� ��� � � ��� �� � ���� � �� ��� � �� ��� � ?� ��� ��� �� � T��

��� ��� �� � �� ��� �� &�� )'9�� ��������� � ������� / � �������� ��� ���� ������� � �)� � � � � �� ) � � ���� ) ������� �� ?I� R� A�� ���� � &)4�6'� 6)�!6)6F��� ��� ������� )6�@

��� -� �������� �� �� �� ��� ���� � ������� /� ���� ��� ��� ���� �� � � � ��������� �� �� ������� ����)�)8 ���� ������ � ��� ������ &)� �� � � � � �'� ,����������� ��������� ��� �������� ������� ���� �� �� � ����� � ������� ��K��������,�� K��� � ������ �� ������� / �� �� �� ��� �� �� ��� ������ � ������� )7� ���� ��#���� ���� ����� �� �� ���������� �� �� ������� )�� ?��� 0� .������ ����� &)4�6'� <4�!<4)�@ Q���� ���������� ���� ���� � 8���� �� ��� �� ��������������������

&(���� �� ��� ���������� � ���� ����� ��������� �� ��� ���������� �� �������E��� ��� ����� � ����� ����� �� ��� ����� � ���� ������� � ����#� #�����F ������� ��������� ���������� �� � ���� ����������� ����� � � �������� �� ���� P�������>� �������� �������� ���� ���������� �� � ��� ��� ���� � ������ ��������������� ������� ������� � ���'

�� -� �������� ���� � 2 6 �� �� ����� )�6� )6�� 6)�� 6)�� )6�� )�6� �)6� � � � ��)6� �)6� � � � � �� ��� ����� ��H ��� �� � �� &�� � � � ����'� ��� ���������� ��H ����� � G ) �� &U��U�� � � �U�����'� ����� U� �� ��� ��H ��� � �� � ) ��������� ��) � � � ) � ) � � � ��) �F ���� � 2 � ����� �� � ���� ��� � 2 � ������� � ����

&������ ���� ������ ������ �� ������ � ��� �� �������� 7�)�+!+6 ��� ++� ,����� � ��� ������ ���� ������ �� ����� ��� �������� �� ��'

��� ������� � 2 )� ���� * � �� �� � ��� $ � �� �� �� )� ,��� & 2 %G )� + 2 �� ����� 'G % 2 �G ,� ,��� ���#�� ������ ���&�� �� �� �' ���� �� % ���� , 2 � � ������ � ���� �

�������&�����' 2

�����

��� ���� ���� � � C� ?����� ���� �� &)4��'�

+C!+4� ������������ 1� .������� ��� ��#�� ���� ��� ���� � ��#��� ���������� ����� ��#�� ����� �� $/�������F ��� ������ $�%� ��� 6 &)4C�'� 6C!+��@

��� &�,'� G &��'� 2 &�,�'� �� ��#���� ��� ���� � 2 ��

�� ���� �� �� ��� �� ��� � ���� � �� ���� ���� �� �#��� ������ ?� �� @ �2 ?� �� @�&������� ��� ������� ��������� �G &��' G &,,' G &�-' 2 &�,�'�'

��� &�' 4�C6 G � G +�6 G )�<� 2 )�C�7� &�' <4C64� G 6)4� 2 ��)7C+� &' <647� G<4��7 2 )66���� &�' <764�+ G <764�+ 2 )6��C+C� &�' 7�)C G 6 G 4C�+) 2 )�++<�� &�')��7�6G7��67)G64+�764G+<7�C 2 +<�64�)� &�' <�+6�G��+GC�+<G4�6<+ 2 )�67+<�&�' 74 G 7��+�+�7)<4C G <46+�+4)<7� G +4C<4++�<4C G )7�+ G +�<)+ G C�74) G 6++ G+) G �+)+�7 2 7�)<6<�<7� G <4)+��<C+4�+� ? �� �� ���� ��� ��H �� A�������� ��&�'!&�'J �� &��������� ����� � &)4��'� ))7F � &)4��'� �4<F � &)4��'� +)F � &)4�C'���+F �� &)4�4'� )66!)6+F � &)4��'� ����@

&�' �� ���� ��� ����� ��� ���)�9 2 �4�6�+� �� ����� ��� �� � ��� ���� ����� �

��� )� � � � � 4 ���� ����� ���� ���� ������ 5 � & � �� & ������������ ������� ������#���������� ��#�� ���� �� ���� � � ��� � ��� �� �� � �� � �� � � �����'

��� "� ��� ��� �� ���� �� � � � � � ���� =�� ? �� ��� ����� ����� �� � � ��� ����� � �F ���� ��� ��� ��������� �������� �� �� ���� � ��������� �� ��� ���� ����

Page 46: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

,! ��!��� � �"������� )�!� �!

G��������"!��������� �� �� �!�����"�$����EL�!E3��"�����"%����

� ,����� <�)� ���� ���� ���� ���� �� ������E�� � � �� ������� ���� �� ��������� ����� �� ��� �� ���&� � �' 2 ����+� � &��'-�� � +���64 G <646� � �6�4� )�7�<6� G 76+6� � )64� G �6C6������ A������ �� ������� ����#� �� ��� ������� ��������J /**' G $6%() G)%(+$ 2 /()%+F %(+)5 G 6()%+ G 6+()5 2 5%//* G 6*+/'F (6(�) G +* *) G %++*+ 2$* %+G6*+'$F .5�/'G)5%�%G2%(.%G%)5�. 2 �'%(/G(/25(G�%)�.� &,��� ���������� �������� �� 65%+%G $%'7%G 7+($$G 7+*6$ 2 �(+$5 ? � "� *����� *��� �� &�������� �� &)4C�'� 7)@� ���� � �� �� ���#�� ��� � �� ����� ���� ' ��� * ��#� ������� ������ ���'

��� &�' )) 2 6 G 6 G � G � G )� �� 2 )) G 6 G 6 G 6� �� 2 )) G 6 G 6 G � G )��� 2 ))G6G6G)G)G)� �� 2 CGCG�G)G)� �� 2 �G�G<� �� 2 �G�G�G�G���� 2 �G�G�G)G)G)G)� �� 2 �G7G7G�G)� �� 2 �G7G�G�G�G)G)� �� 2�G7G�G�G)G)G)G)� �� 2 �G6G6G�G�G)G)G)� �� 2 �G6G6G)G)G)G)G)G)G)��� 2 7G6G6G6G6G6� ?,���� � ����� �� ���� ���� %��� �� ��� �� A� �������� )444� ,�� ���� � ��� ������������ #�� �� � � ��� 6� &�� �� ����'� ���� +� &�� 4+����'� +) &�� <�'� +� &�� 7�'� 7� &�� )4� ����� ��� ���� 7� 2 � G � G � � �G �'� ���@

&�' 7) 2 �� G )7 G )+ G �� 7) 2 )7 G )+ G )� G 4 G 6� <) 2 )4 G )< G )) G 4 G <�<7 2 )� G )< G )7 G 4 G � G )� << 2 �� G )4 G )< G < G 7� <4 2 )C G )� G )< G )� G C��� 2 6�G��G)�G�G6� �� 2 ��G)<G)�G4G�G<� �� 2 ��G)7G)�G))G�G7�C� 2 7�G��G4G)� 4� 2 7�G)�G))G4G7G�G)� 4) 2 +7G)4G))G)�G7G)� ?,���� 7)� ��� � � � ���#�� R����F ��� ��� �� '�#� ��� ���� � ��#� &-�����������$�� P��J ;����� )4�C'� 6<!6�� C+� ))�� ��E��� �������� ���� ��#������ ������������ �� ������� ��� %��������� ������� ����� �� A��� � ������ ��#� ���� � �� ��0� �� ������� �� &��� ����� &)444'� <6�@

(����� ,�� ��� ��� � ������� )5+%% 2 )6* G *&% G -%+* ?A����� =� ;������&��������� ����� ����(��� �� &1������ )4<�'� �+@ �� ���� ������ � ��� � �� ��#������� ,�� ���� � ���� � � ��� �� � ��������� ��� ������� ����� �� �������%����� �� .������� ���� �� ������� �� �� ��������� ����� �������� �� �� ��������� ������� �� ������� ������ ���� &�&%),&�&%&*&�//�*&&�&%),&�&%$%�)�//�*&$��),*&% 2&�&%),&�&%&*&�//�*&&�&%),&�&%$%�)�//�*&&�&%)%%&G$��)%%&G%/%0%&G&�&%G$��&� ������� �� 0� 0�EV���E�I����'D

��� )� G � G ) 2 4 G < G 6� )) G )� 2 C G � G <� )� G � G < G 7 2 )) G )� G 4� � � � �)4 G )� G 6 2 )+ G )6 G + G ) &6) �������� �� ���'�

� &�' 7<�� 2 6�)+C4� C��� 2 <7)�+4� � C7+� 2 ��46)<� &�' 47C� 2 4)��<+� &' 4<��� 2 +��+� &�' 7)6�+�<)4�+ 2 ��<��C�<�� &�' 6�C7�4� 2 +�<)� ?����� �� &)4�4'� 4)���CF �� &��� ���� &)4��'� +6F � &)4C)'� �)�F �� &)447'� )6�F � &���6'� )66� ,���� ���� � &�'� &'� &�'� ��� &�' ��� ��H �� "��� � ������������ ������ ����� � ������� 5� ��� ������� ��� � �� �� &)+� )6� ))� 6+�6� +�' �������� �������#����@

�� 7�6+ G ��<C G 4�)�&9'� Q�� �� #����� ��H ����� ���� ������� 5 ���� ������� ������ ( � ' � 7� �� �� � �<7 R@� ?)��! *����� ������� ����(���� $� )6<&,��J R������� Q���� )446'�@ $� ��� ��� ���� ��� ��������� ��H � �� ���� � ������� � EE��J )�&6� <' G 7�&C� 4' G ��&�� +' 2 )F ��� ����� $���� ����+�((�� ,-�������� ������ ���� +�((���. &,��J R������� ����'� � ���� �C�

�� ,���� ��� ���#�� ����� � ���� ��� ��� � �������� �� 6 G <4�7C��)+� ?��� ���/��!�� ��� ���� &4 ��� �6 * �� )4�)'F ���������� �� ����������� &)4)�'� )7C!)74�@

� &�' )� �� 6� +� )7� )C� ))C� )+<� &�' <� 4� )<� ��� ��� )�<� )��� )�4� )6<� )+7� ?���/��!�� ��� ���� &)) ��� 6� $#������ )4��'F ���������� �� ����� &)4)�'� )74�@

Page 47: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ,"

)�"��"�������/$���"�% ��� �"���"��4���!J� �� ��"�� � �!�

�� ���� ��� �� � ������ �������� �� � %�� ��� #�������� ����� �� � � � ������� � � � ���� �� �������� ���� � ���� �� ���� �� ��� ���� ������ � �� � � � ����� ,���� ��������� )<+474 �������� ���� � ��H � �� ���� ��� ������� ����� 4C�<766� ,���� ����� ���� �� ��� ����� �� ��� �)�� ��� �� ����� ��4)� ,�� ��� �� ���� &)�7' ����� � 2 <++6F ��� ������ ������ � ������������� �>� �� 7)�4 � � � ��<�� 1 �������� ���� � ��� ��� ���� ������� �� ���� �� ����� � �� N������ � ������O

�� &�' 2 )��� �6�CG)77G4�+<� 2 �)�CG677G4�+<� 2 )�)<G�66G4C�7) 2 )������&�' 2 +�� 6�6< G +77 G )�C46 2 )<6C+ �� ��H �� ,�� ������� ��� � ����#� ���������� �� ������� � ����� ���� � ���� � ��� �7�4 ������ ���� ����� � %#� ������������� &������ )��+6� )��+�� � � � � 4C�6)' ��� � ���� �� ��� %#� ��������� �������

������������ ��� ���������� ��������� %0%& G *'' 2 2+��% ��� ��� �� ����F��� *'' ��� 2+��% ��� ����� �� M �� �� � ����� ?��� I� ������� �� &��� ����� �&)4�7'� )76�@

�� �� �������� �� �� 2 �"�� �� ) � � � �� ����� ��� �� � � � ���� ���� � ��� ��� ���� ���������� �������� � "�� 8��� ��� ������ ��

������� +

������� �

����� -� ���� �� ����

��� �� �� � < � �+�� 2 +6<)4<<4�+�+��6C6<)�6)6<�&; � �� ��� #������ ��� ��� ������� ��� �� #�� �� ��� ������ -� ��������

�� #������ &�� !� :' � &�' ��� ����������� ���� &�� �� �'� �� ��#� �� 2 )� �� 2 <���� 2 +� ��� 2 )� ��� +

� � �+�� ���� �������' � ���� ��� � ��� !� :� ;� >� �� �� ���� � ����� ������ � � �#��� ���� ������� ����� ��� ��� �� �� ���� ���� �� ��� ��� "� 2 �&'� �� ��� �� �� ��� ���� �� � ����� � 2&�! �'&#<�9'&"��9'&:;�>' �� � 4�Æ ������ ��� � 2 &�:'&#9'&"<'&!;'&=�'&>�'&� '&��'�� �� ������� � ������ �� "� 2 �&'� &� /� &/ � ����� & 2 &#9'&"='&!�'&;>'&��' �� ������������ ��� / 2 &#"'&9='&:�'&;>'&<�'&��' �� ������ �����F "� 2 � � � 2 "� 2 �&' �&,���� ��� +� � ) ���������#� ��������'�� ,�� ��� "� �� �� ���� �� �9��� ���� &��� ������� 67'� ��� ��� ������������������ �� �� �������� � �&�� )'� � � � � �&�� �' �� �9 � ����� ����� � ��� ������ ��

+� 2����

��� �9� 2 �9&

��'���

��� �&��'� -� �������� +�� � <��7< � )���� "� ��#�

�������

��

��� � 2

)

� �

& � )' �� 1 G#&�� �� �' 2)

<� ��� G#&�'

�� . ���>� � ������ ��� ��F �� � ��+� 2�� ���G#&�'�

�� ,�� ���������� ���� '&�' �� ������ �� ���� 0+ �� )��9 � )�&� G )'9� �� ) �� � �F ��� ���������� �� )��9 ���� �� ��>� ��� � ���� 0+ �� ���� ���� '&�' ������� ������������� ��� �#����� �� ����

���+)��9 � )�&� G )'9-���� 2����

��� +���� ��&� � )'�� -��9� �&�� )'�� ��9 2�� ��� )��9 G#&)�&� � )'9'��� &�' �)�6� )��6� ��)6� ��)6� )��6� �)�6� 6�)�� �6)�� )6��� 6)��� �)6�� )�6�� �6�)�6��)� ��6)� ��6)� 6��)� �6�)� )�6�� �)6�� 6)��� )6��� �6)�� 6�)�F &�' �)�6� )��6� ��)6���)6� )��6� �)�6� 6)��� )6��� �6)�� 6�)�� )�6�� �)6�� ��6)� ��6)� 6��)� �6�)� �6�)�6��)� 6�)�� �6)�� )6��� 6)��� �)6�� )�6��

�� ;� ��� ��� �� %�� �&)� )' 2 &� )'� �&�� �' 2 &� ) �'�

�&�� �' 2

�&� �'&��) ��� � � � )'� �� � � 6 �� ���

&� ��) ��� ) � � � ��6 �'� �� � � + �� �#��F

��� �&�' 2 &� �' ���� � �� �#��� �&�' 2 &� ��� � � � ) ��) �' ���� � � 6 �� ���,� � ���� � � 6 �� ��� �&�� )' 2 &� ��) �' ��� �&�� �' ����� � �� ��) �� ) � � � �F���� � � + �� �#��� �&�� �' 2 &� � ��6 � � � ) ��� ��)'� �� ) � � � ��

Page 48: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

,, ��!��� � �"������� )�!� �!

�!!��"��1"

(����� ,�� %��� ����� ���� � ��� ������� 0 � �������� ��� ���� ������ �������� ������������ ��� ��#���� �� I��� "���� ?����� �� � �� &)4<)'� )4�!)47@�� � �� ��� ���������� ��� ��������� "� =������ *��� �� ���� � � ������ ��������� ��� � �� � #������ � ��������� ������ ?�� ����� � &)4�4'� 67�!6<7@�

��� "� ��� ��� �� ���� � �� ������� 0 ���� �������� �#�������� �� ��� ��������� �� �� ������ ����� W� � )> � W� � �� > �� ���� 06� ��#���� ���� �� ����%���&�' � �� �&�� � �� ' � � � �&�� �' ������� � ���� &�'�

�� �� �� ��� ��� ����� � &��' �� ����� #����� ���� �� ��� ��� ��� �� ������ +����� � �� ��#���� ���� � � �� G�� ,�� ��� ��� ��� ��� �&�� �' 2 &� ��) � � � ) �'��� �&�' 2 &� � � � ) �' ���� � 2 �� F �&�� �' 2 &� � � � ) �'� ���� � 2 �� G )�

�� � � �� �#��� �� �� �� &��' ���� �#�� ��� �� ��#������ �� � 6� ; � ���� � + � ��� ����� ����� �� ������� ��� �� � %��� ����������� ���� &� �' ���� ��� �� �� � ��� �� �&� � )' �� � ������ ���� ����� ���� �&�� )' � �� �� ���#�� ���� �����F � � �&�' �� �� �� � � �� G ��

,�� ������� ����� ���� ���� �� �� �#��J =�� �&�� �'�&� � )'� 2 &� ���'�� ) � � � � 2 ��� ��� �� &��' ���� � � ��� ,���� ���� � 2 ��G)� �� ��#��&� � )' 2 &� ) � � � ��)'� ���� �&�� �' ����� � �� &�� � )' �� � �� ) � � � �� ����&�� �' 2 &� ��) ��6 � � � � ��� � � � )'� �&�' 2 &� � � � ) �'� �&�G)� �' 2 &�G) � � � �'� �

��� �� �&�� �' 2 &� ��)' �� ��#� �&�� )' 2 &� �' ��� �&�� �' 2 &� ��)'&� ���' 2&� ��) ���' �� � � � � ��

�� Q� ��� �&)' 2 �&)� )' 2 �&)� )' 2 &� )'� ,�� ������� ���� ��� ������&�' 2 &��� ��) �' �� ��� � � �J =�� �&�� �' 2 �&�� �'�&��)'�� ����� �&�� )' 2 &� �'��&�� �' 2 &� � )'� �&6� )' 2 �&6� 6' 2 &6 )'� �&6� �' 2 &6 ) �'F ���� ����� �&�� �' 2 &� �'��&6� 6' 2 &� 6 )'� ,��� �� � � +� ���

� �� 6 2 � ��� 6 2 ) ��� 6 2 �

�&�� ���' 2 &� ��� �' � &� ��6 �' � &� ��) �'��&�� ��)' 2 &� ��� ��6' � &� ��6' � &� ��) ��6'�

�&�� �' 2 &� ���' � &� ��6 ���' � &� ���'F

���� ����� �&�� �' 2 &��6 � ���' �� ��H �������� $� ��� �� �&�� �' �� � &� G )'����� �� � ������������ &��� &7' ��� &��'�'

��� &�' ����C����� ���� � 2 ��� +��� )� � � � � ���) !���� � � � � ���� -� & � ���� � ����#�� ��� �� ��� ��������� � � �� �� ��� �� ���� �� �� E���' &�' +�76<C4)��

� � ,� � &��� ���� ���� � 2 �'� �� ������ � � ��� � �� � ���� �� � �� ��#��� � � � ���� � ����

��� ����� &5)�5�� � � � �5<' ��� �������� �������#��� &)� +�-�+�)� -�!�� +' ����������� + 2 !� G � � �G!��� ��� - 2 �!� G &�� )'!� G � � � G )!����

��� ����� &5��56�5+�57�5<' ��� �������� �������#��� +� G &)� �9� �� �� )' ����������� +� 2

������� �

� 2 �9����

��� )��9 � �9 &= � )'� �� ���� ���� ���� �� ��������#��� &)� )� 6� )� 6' ����� �� �������� ��#�#��� �� � 5� � � � � ��� ���� �� �� �� �4=� C � )<�+< ���� ��� ���� ������

������� = ��� ������������ &=� �G =��� �=G�=�� � +' ���� ��� ���� ������� ����� &=��=6�=+'� �� � ���� � 6�7=G �=�� � � � C��7 &��� ������� 7'�

������� 5 �� �� � ��� � �� ���� ��� �� ������������ ��� �� ���� � ������ �� ; � � �� ������� =� �� ���� �� ������� )�

Page 49: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ,;

��0"�0$�� ��/ $��

��� Q���� ��� ������ ��� � ���� ���� � � � � � ����F ��� ������� ������ >� � � � >�� � � � � �� ,� � � � ,�� � ���� ��� ������ ��� ���� � � � � �� ��� >�� � � � � � >�� � -��������� ���� $%&' G �*+% 2 �*&%, �� ��#� &��� � � � � ��' 2 &�4���� )�����4��� 4)��4�� )�� )��)� �� �' �� ��� �������#� ������� &�� $� *� %� &� +� '� ,� (� 'F ��� &>�� � � � � >�' 2&�4�����4����4���)� �� �� )� )�� 4)� )���'� ��� � � � � � 2 �))��666++� ,� � � � ,� 244CC��<77+� P�� ������ ����� :� � � � :� ��� :� 2 ) �� ��� ����� ���������� � >����� �� E��F �� ���� ��� :� � � � :� 2 )��������)� ,���� ������ ���� �� ���� ��� �� ��� ������� ��� �������� #�� �� �

���� G � � �G ����

#�� ��� ���� �� � � � �� � ��� ��������� ������� ���� ��� ����� � ������� �7� ������� ����� 5� ���� � ���� ������ �� ��������� �����

,��� ����� ��H ���� � ������ �������#� �� ����� �� ��� ��� � ��� ���������� � � �� ���� � ���� �� ������� ���� ���� ������ -� �������� �� ��#�� ��� %�������� ���������� � ������� �+ ���� ��� � ��� �� )6� �� 4� 7� 6+6� ++� ��� C4�������F ���� �� � � ��������� ����#����� �� ���� &�'� &�'� &�'� ��� &�'� ���� ����� &�' ��� � �����%����� ����� ����� ��� ��� �� ��� W.5�/'> ������� ������� ��� ����� ������������ ����� �4+� ������� ������ � 7CC �� ��� ������������ ������� =����������� ���� ���#��� ���� ������ � /**' G $6%() G )%(+$ &�6#��� � 6<�' ��� 5%//* G 6*+/' &6+� #��� � +)�'�

�� �� � �� �� � ���� ����� �� �� � ��� ��� ��� ����� ��� �� � � � � ��� ���� ��� 2��� ����� % �� ��� ���� � � &��� ����� ��� � ������ � ��� ��� �������'� ��&��' �� �H �#����� � �� 2 ���� � � � �����

��� -����� -� �������� �&�� ?'� ��� �&�� �'� ����� ��� ���� � �� ��

��� �&�� �' 2 &��� ���G)' �� �� ��M���� ����������� ����&�' 2 &��) � � � �'&��� � � � �' � � � &� � � � �' 2 '&�� )''&� � )'

�� � ��B�� ������ �� �� ��B��� ,�� ���� ����� ���������� � ���� ������� � � � ���� �� ������� 8 ��� �� �������� � ��� ����� � � ���� ��� ���� ���� ���� � � � � �F � �� �� ��� ���� �� ��� ���� ����� ���������� � �� � � � �� �� ������� /� ����� ���� � ������� ��� ������� �� )�

,�� ��� ��������� ��K����� ������� ������� / ��� ���� #����� � ������� 8�� ���� ������� / ��� � ��B���� 0��� �� � � � ��� �� ��� ������������ � ������� ������ ����� ������� 8 � �� ��� �� ���� ����������� � ����� �� ��������&����������' �����

������� 0��� �� �� �� ��� ���� ��� ���� ������ �� �������� ������ �������� 0 � ������� 8� ,��� ��� ���������� ��� �� �&�� �' � �� �&�� �'�� ��� ������� ������ �&�' ��� ������#����

�� ,�� ����>� ��� ���� �9�) ������������ ���� �� ����#�� �� � 2 + ��� �������� �� �� ��� � ��� ������ ��� � � � � � �� ��� �� � � ������ �����������&��) ���'� ���� ��� ����� W&6 �'> �� ��� ������ � ���� ����

,� � �� �� �������� ��� ���� ������ �� ������ ��� ������� �������������� ���� 8+J �� � 2 � � ) � � 2 � � �� �������� �� ��� � � � ���� ��� �� ������ 2 �����)� �� � 2 ��6 � � 2 ��+� �������� ���� � ���� ��� ��� �� ��� ���� �� ���� ��� ����� ����� � 2 ��� � )� �� �� ������� �� � 2 �� ��� ) � � 2 �� ��� ���������� ������� � ����� �� ) � ? � � ��� ��� �� ��� ����� � � ���� ��� ����������� � 2 ������� � )� ?��� ���� �� &)4�<'� <C!���@

Page 50: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

,. ��!��� � �"������� )�!� �!

�"!),�� ���������� ���� ����� ���� ������ �� �� ������� ��� �� ������ ����� �� ���� ��>� ������ ��������� �� ��� �������� ������J

�&�� �'� 2

�&� ) � � � ��) �'� �� �� � �� ��F

&� ) � � � �'� � �� �� � �� �#���

,�� #�� � � �� ��� ����� ���� �� � � �� � ) ����� ��� ����������� -� ����� ���� ��� �� ��� ��� ���� � � ���� �H ��� � � )� ,�� ���� � ���� � ����������������� �

��� &�� ��'9� ��� � )���� P��F ��� ������������ �� �� ��� ����� � ������� �)� � � � � � ���� &�' ���� $�&%' 2 $�&%�� �9' ���� � � $�&%'� �� ��#� $�&�9 G %' 2 $�&%'�� � � % � � � �9 2 &� G )'9 � �9� ,������� &��� 2 �� ���� � � � �� �����&�� 2�� � � � � �� ��&�� 2 &&�� �� � � % � � � �9� ��� �� ��#� �� ����� ���

& ����� 2 ����& ������� 2 ����&����&��� 2 �����

�� &

����� �

��������� ���� 2 &����&����� �� � � % � � � �9����� &�� �� ��� ���� �� ��� ���� �� %�� ��� 2 �������� ���

� ����� 2 ����� ������� 2 ����&���� ���������&�����

2 � � �2 ����&

���� �����&&�����'

2 &������ �����

�� &&�����'

���

2 &� ������������ �����

�� &&�����'

����

&�' �� ���� ��� ������� 2 &� ��) � � � )' ��� �����

�� 2 &�G) � �'� ��� �� ��#�

& ������ ����� 2 &�G) � � � � �' �� ��� ���� ,������� ����� 2 &���� �&� � � � �'�

�� � � � � � ��� � � % � �9� �� ���� ������ � ��� � � � � � ��� ����#�� ��� ��&���� � %��� � ��� &� � � � �'� ����� � �� �� ��

� � �� �� ��� �� 2 &��) ���'&��6 ��+' � � � �� ��� ���#� � �������� �� %�� �� ��� ���� ���� &����� �� ��� &�G)'���� &� � ��) ��6 � � � &� � )' &) � �' � � � ��+ ���'���� �� ��� �� �� ������ 7� �� �����

������� ?� ��@��9� &����)'��9 2 ���� )�)�

#&)�&�� )'9'���� ,� �� ;� ��� ��� ��� � ������� 77 �� ��#� ����� 2 &� �'&��� &� � � � �'� ������� ����� � �� � � ) ��� �� &�� %��� �� &����H ����� ������� . ���� ��%�� �8��������� ������� � ��� ����� � ������� << �� ��� ��� �� &�� 2 &��) � � � � )'� ������� ���� �� ��� ��� �� ��� ������ � �#��� ��� � & ����� �� � ��#��� � �� ,�� �������� �� � �� � 2 �� 6� +� <� )�� ��� ��� +�� � � �� � ���� � � �7������'

��� ,�� ������ ����� ���� ��������� &��� � � � � ��' �� ��� ����>� ��%����� �� �������� ��� ������ ����� ���� ��������� &��� � � � � � �

�� ' �� ��� ���������#� ��%������ ����

( � ��( �� ��� ����� �� ��� ��� �� (� � (���� �� ��� �������

� ,���� ��� CC ����� ��H ����� ���� ��� � � � � ������J 8 2 &6�)6)�6)' &������������ ����������� �� C ��K����� ����� ��H ����'F 9 2 &6�)�)�6�' &� � ��� 0���#������ � ����� ������� ���� C ������������#��'F A 2 &)�)�6�6�)�6�'� &� � ��� 0����� ���� �+ ������������#��'F " 2 ��6��� � 2 )�6�)6)�)�) &+C ������������#��'�������� 8 ��� 9 ��� ��� ������ � ����� ���������F ������ 8 � 9� ��� " ��� ������� ����� ��#������F ���� A �� � ������� ��#����� � ��� ��������� ?��� � =� =���� ���#�������� ��(���� �� &)4<+'� )!)<�@

Page 51: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ,)

��� � ����"������ ��!� ��" ���

�� ,���� ��� �������#��� &�<� 6<� ��� �<� �C� +�� +�� ��� �<� �C� �C� �<' � � ����� �������� &)�+6� )6�+� )+6�� �)6+� �6+)� �+)6� 6)+�� 6�)+� 6+�)� +)�6� +�6)� +6)�'�

�� ,���� ��� ��� �� ����� ���� � 2 6� ������ �������#��� �� )6� ��� �)6�; � ���� � � + ����� ��� 0��� ��� ������� ��� )� � � � � � ��� �� ���� ������ ���� � � � ��� .������ <) ����������� ���� ���� � 2 +� ��� �� �� ��#� �� ����� ��� �� � � + �� ������

=�� +&�' �� ��� ��� � ��� ���� ������ ���� ����� ���� �� ��� ��� +&�� �' ������ ���� ����� ���� ��� �� &��� ��� � � � � ��' ��� ��� �� ���� ������ � � ������ � +& �� ���'� ���� &) �'�� �� �� �#�� ���� ����� �� +& ���� �'� ����H ������ �� � � � � � � �� � ���� ����� � �)� �� � � � � � � ����� �� �� ����� �� 8��������� ���� ���� ���

&) �'������ � ���������&) �'������ � ���������� � ����&) �'�������� � ������F

��� � ����� ��� &) �'���� � �� ��� ��� ��� �������� � +& �'�,��� ���� ��� ��#�� ��� ������ �� �� ����� &���'9������ ������� ���� ����

�� �2 )� ��� �� �� �� ���� �� 2 �) � � � � ��� �� 2 ���� � � � ��F ����� ��� &���'9 ����� ��� � � � � ���� ��� &�� �'9�� ���� � ��� ��� � ��� � � � � �����

-������� �� �� 2 )� ���� ��� ���� )� � � � ���� � � � ��� ���� � � � �� ���� � �� ��� ����� � +&)'� ��� ��� ��� ���� ������ ���� � � +&)� �' ��� �� � +&)� ��' �� ���� �2 ��� A����� ���� ���� ��

����&) �'������ � ���������� � ����&) �'�������� � ������������

���� � ���� ��� ���� ��� 8��������� ���� ��#� � � �� ���� �� 2 �� �� 2&) �'��� � 2 )� � 2 �� � 2 ��� ��� ��� 2 )� &�� ���� ��� ��� ���� ������ ���� � � � �� ����� ��� �� �#���'

� I��� ���� ��������� ���� ��� �����H �� � ����� ����6 � ����� ���� ��� ����� ���� � �H �#����� ������ ���� �� � ���� )�� � )���F ��� � ���� ������ ��������� +C� 0��� �����

�� .����� ����7���� ����� ��H ���� ��#� ��� � ��� 0��� �������F ���� ����� �+��< �H �#����� ������ ���� ��� ������ ��#������ ���L� ������������� $���������� � � �� ��� �� ����� �����

� 2 )�6+6�6+6�)�6�)�)�6�6�)�6�)�)�6+6+6�)�)�6+6�)�6+6�)�)�6�6�)�

��� ������ � ����� ��#�����F +C ������ ��� ����� � �������� <������� Q�� � ������ ����������� � ��� ������ ���� �� �� �����

� 2 &�&+&+&+&+� & 2 6�)�)�6�)�6�

�� � � � ���� ������ �� ��� ��#��! � �9J =�� ���!�� ���� ����� �� � 2 �� � � � ������ ��� � 2 ��� �� ��� X� �� ��� ��� � ��� ���� ������ & 2 �� � � � �� �� ���� �� 2 ���� & � �� ;� ��� ��� � ! ����� �� � 0��� ���� 8� �� X� � "� �� ���� ���� �0��� ����� 8� �� X� � X� � � � � � X��� �� � � � � �� � ����#��� ������� 8���

���� � 0��� ��� �� X���� &��� ��� N��������O ���� ��� � ������ <�� �� ����8� ���� �� � 0��� ����� ���� ! �� � � ������ � <�'

� 1�%���� ��� ����� ��H ��� �� ��� � �� ( ���� ��� �� 2 &) �'(�� �� %�� ������ 6<� � ��H ����� ��� � ���� ��� ��� ������ � � ������� ���� & ,3,3, 3,3,3'�� &,������ ���� � 2 7� ������� ��� �� � )��� �� ���� ���� ��� ���H �#����� ���� ������� ��� ��������� ��#������ ��� ���� ����� � ��������� �� � �� � <�)��� ��K�����

Page 52: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

,< ��!��� � �"������� )�!� �!

K�1�� "!���"�� �����$�������1/��)�%���/ � ����"���%�� �"� �����������)�%��/!/ %���"�)�!��"���K�1����"M$"L$

����� ��H �����' ������������ ��� /�� ��� ���� ���� ��� ������ ����� ��������� ������ ������������ �� �� &�� �'����������� �� � �� �������� �� �� �� ��� ( �� �H �#����� � (&)�6+7'� �� ��� � ��� �� ����� � �+ #������ ������� +��<C 8��������� �� ���� �+� � ���� ���� � ����� ��H ���� � ��� ��� �� ������ � ��� ��� ����������� < ����� &�� �������� � 2 67+�6�76+�6+76�+7+67�+7�'�,�� ���� � ���� � �� ���� � ���� ������ �� ������� �� � )����

�� �� + ���>� ������� ������� �� )� �� + �� ������� �� �� ��� �� ���� �� �� � ��������� I��#��� �� ���� ��� �� �� ��#� � ��������E���� � ��� ��� �� �� ������� <�J-� � � + ����� �� � 8��������� ���� �� ) ��� ��� �������� ���� ����� � ��� ������ ������ -� �� �� ��� �� ���� � ��� � ���������� ���� + ������ ��� ����)���� ����� ) �� � ���� � ��� ����� ��� � ��� ���� ���� � ������� <� ��������

?,��� ������� ���� ��� �� � � � I� ,� ����� �� ��������� �� &)4C�'�))7!)��� .������#� ��������E����� ��#� ���� ��� ���� �� A ���� ��� ��#��� �� ������ ������� ����� &)446'� )7�!)<<� ��� ��� ��� ������� A ����� � ������� ��0�������!� ��� 6 &)4�7'� )�!�7F .������ ����������� ���������� �� &)4�7'� 6<�!6<<�@

�� -������ ��� ����� ��� ���%�� �������� ����#�� ���� ���� ���� � 2 7J

���� �

�� �

�� �� �

���

� ��� �

� �� ��

� �

���� ��

�� �

�� �

�� �� ���

� � � � � � � � � � � �

# ��� � �#� � �#� # ��� � #�� � ��# � ��# � #�� # ��� � �#� � �#� # ���

��� # �#� � �#� � ��� # ��# � #�� � #�� � ��# � ��� # �#� � �#� � ��� #

�#� � �� �# �� �# �# ����� #� #� �� #� �� �� #���# �� �� �# �� �# �# ��

�� #� #� �� #� �� �� #���# �� �� �# �� �# �# ����� #� #� �� #� �� �� #�

��# � #�� � #�� � ��# � ��� # �#� � �#� � ��� # ��# � #�� � #�� � ��# �

� #�� � ��# � ��# � #�� # ��� � �#� � �#� # ��� � #�� � ��# � ��# � #��

���# ��#�� �#�� ����# #��� ��#� ���#� #��� ���# ��#�� �#�� ����#

#���� ��#� ��#�� #��� ���# �#��� �#�� ���# #���� ��#� ��#�� #���

���# �#��� �#�� ���# #���� ��#� ��#�� #��� ���# �#��� �#�� ���#

#��� ��#� ���#� #��� ���# ��#�� �#�� ����# #��� ��#� ���#� #���

� � � � � � � � � � � �

8��� ��� � ��� ��������� ���� � ���� ������ ���� ��� ������� ������ ���L���B���� �� ��� �� ����F �������� ��� � �� ������ ������ �� N����� ���� ������O &������� )C'� "� �� �� ������� / � � � ��� �� ��� ����� ���� �������������������� ������ ���� ��� ���� , ���� � ����� , �� ��� � ��� �� �������� � � ������� � $� ���� �#� � � ��� ����� � � ��� ����� ���� (� ���� ������������� �� � ��� ������� � ���� ��� ���� ������ �� � � � ���� � ������ �������#������ ��������� &"� ��������� �� ��� ��� ���� �?�@ 2 �?�9 � �@ �� ��� �� � � ������� ,�'

$� �� �� ������ ) � � � � �� �+ � � � 6) ��� ����� +� � � � +� � +�+�+�+��� � � � ��� ��� ��� ����%�� �������� ���� ��� ��� ��� ���� �� -��� ��&�'�

,��� ����� ��� �������� �� � &������ ��#�' ������ � .� �� A��������� �� ����� �� &)474'� 7)!7C� �� ��� ������� � ��� ������� ��� ����#�� �� �������#��� �� )4C4� ������ ���� ��� ������ ����� �� ��� �� � ��������� �� �������#� ���� $� �� � ��� � 8��������� �� �� ���� $� 2 �$ ?��� �� /�� ��� A� A���Y�V�N8��������� ����� �� ������ �������O � ������@�

�� $F ��� ������ ��� �� ���� ������� ��� ������ 67C� ; � ����� � ����� ����� ����M��� )C������ ��� ���� � 8��������� ���� � ������ ��� �� �� ����#��� -�

Page 53: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ,1

�$��/���1/���1"� ���!� ��/ $����N������

�������� ������ ��� ���� ��&� ��� /�� �����

� 2 �������������������������������������������������������������F

& 2 ����������������������������������������������������������������F

/ 2 �������������������������������������������������������������

�����������������������������������������������������������������

�� �� ����� ���� )6+7�< ��� ���� ��&� �� ���� )<6+7�F ���� ���� /�� ��� ����)�<6+7F ���� ���� �/� ��� ���� )7�<6+F ���� ���� &��� ������ �� +)7�<6�

��� ;������ IR�� ��� -���� A ���� ��#� � �� � � ���� �� �� ��� ����� 2 �� 4� ��� ))� � � � ��� ��� � �� ��� ���������

��� �� 8��������� ���� ��� ��� &��)'9 #������ ���� ���� , �� � ��� � ���� &���� ��� ����' �� ������ �� � #����� ���� ����� �� � � �� � �� �� ����F ��������&�� )'9 G ) #������ � �� ���� �� �

�� &�' �� �� %��� ���� & �� ��� �������� ���� ����� &'� ,��� �#��� ��� � � ���������� �� ������� � + ���� �������� ������ +� 8��� ��� ���� � � ��� ������� ��������� ��� ���� � � ���� ����� � ������� � +� �� ��������� ���� ��#� ��������� � � �� �� �#�� ���� ������

�� & �� �� ��� ��������� �� ����� ���� ��� ���� � �� 2 �&�� &� 2 &'� ��� �� 2 �&���� ���� ���� �� �� �� �#�� ���� �����F �� � � ��� & ��#� ��� ���� �����

���������� � ��� � ��#� ��� ���� ����� ��� �� &�� 2 &�&�'� ��� ��� ���� ������ �&��

&�' =�� � �� ��� #������ � ��� ������ ����� �� ,����� A� ��� ��� � �� ������� ����� � � ���� ����� � #����� ( ��� �(F ���� ���� ����� ��� .�� ���� ������� �� 1�%�� ��� ���� ����� & ���������� ,��� �&� ��� .�� ���� � ������ �� ��� �� ��� ��� 8��������� �� �� �� ��� ����� ��%��� � ��� � ���� ������ ��� ���#������ ��� �����%�� ��� ��������� � &�'� ,������� � ��� & ��#� �� �� � ���� ������ ��� �� ��� ���� � � ���� ����� � � �������� ���� ���� �� &�)'��� &���������� 7����!�'�

?,��� ���� ���� ���� ���� � ���� �� ��� ��� � ��� �� � ���� � �������� ��������� �� A����� �� +�� �������� +���� ��� � &)4<<'� )7!)<�@

��� ,�� ������������� &�/� �� ��H � �� �� ��H ��� � � � � .�� ��� � � � � �� -��� �� ��� &� 2 /� �� ��� � ���� � � � � .��� ��� �� � � �� ��#� �� ��� ����������� �� ����� ���� &� � 2 /� �� ��� ��

=�� � �� � 8��������� �� ��� �� �� ��� ���#� � ������� �� � 2 � ���� /�� �� �� /�� ��� �� /& 2 �� �� �� � 2 & ���� /� ���� �� /�� ��� ������ � �� ����� /�� 2 /��� ,� � ��� �������� /� ��� ��#� �H �#����� ����#������ ������ � ����� � ����� �� ��

$��� ���� �� � � � ����� �� � � � � � � ���� �� 2 ��&��� 2 &�/�� ,������� �� � 2 /��� �� �H �#����� � � ��� ��� ���� ����#�� ���� ������� "� ��� �� � �� ��� %��� ���� �� . ����� �� ��� ��� �� �G � �� ������#��� ����� � ��

��� ���� ��� ���#� � ������� ���� . 2 %�� � 2 %� � 2 �� � 2 %��1� ,�� � ���� ������%�� � � � &�� � %'� �G 1 � � &�� � �'F ��� �� ����� ���� � G � � � �� ������ �� &1� �'%�1 � ���1�

(����� ,�� �� ��� 0��� �� � ������� ����)�)!�C �� � 8��������� ���� ���&�� �' � +%�)� &�%' �� �-� � �� �� � 8��������� �� �� �� ��� ��� ��% �� � � ������� �� �� �� ��� ��� � �M�� �� &�������' ���� �� ����� �� 8��������� �� �� �����������#�� 1 � )� ; � /� .��Z� ��� "� ,� ,����� ��#� ����#�� ?�� �� � ���� �

Page 54: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

;/ ��!��� � �"������� )�!� �!

��!!"��&)4�C'� )6�!)+�@ ���� �� � ��� ��G) ��� �� ����� � ������ � � ������ � ������ ����% 2 �&��G )'&6�G )' ��� � 2 &6�G )'

����� <

�� �� �������� ������ ��������

��� *� � 0������� ������������ ������������ �� 6 &� ���� )44)'� +�!+6� ������������� ���� �� � ���� ����� � ���� �� 0 � 0��

� � "���� ��� �� ���� ��� � � ������ �� ��� ���� ���� ����� ,���� ��� � �� �������� % ��� � ��� ��� ��#������ �� 6� ��� �� �L6 � ��� ���� ��� ��������� �� �������� Q��������� ������� 1 2 ��&%��' ��� ��� ��� �� �� ��� ���#� � ������� � � ����& � ,'� 2 && G�' ��%� &,G)' �� �' ��� & � ,'& 2 && G)' ��%� &,G�' �� �'��� %�� ��� ������

�������

�1

�H��+&�1��'%� &�G1'�- 2 1 � +%� � 6 ��� ��+&�1��'%� &�G1'�- 2 61-I�

��� �� ? 2���������� ��������� @A� �� 5���

�� & �$ #� ,�� #�� � � � &6 � ���� �� �����'� � �$ B"::

�� C �$ B� C��� � �$ B# C��� �� �$ B"

� �C �$ B!

�� /*. '���D$������

�) � 7+%7 E ;��� ������� �� �� � � � ����

�� (� �$ E

�� (# �$ EF=

�� (" �$ EF#;

� /*. EF=?& ���� �� �� � � � ����

�� � 7+%7 E=?! =���� � C���� /*. E=?!F=?& C� � � � C����� ��������� E���� *.)( # C�� 2 �)� � �#������ ��������� � 7+%7 � ������� � ��� ����� �� ����� ���� G 7+%7 � ������� � ��� ����� �� ����� ���) 7+%7 � ������� � ��� ����� �� ����� ��

�� /*. H#��

�� #5 $).* �I�I� - �+ �� � ���� �&./ �I= - �+ � � � G )�� �5 /'* CI�I� - � � ����� .�2 �ICI� -�� - �I# - =� �� �� 2 ���� & CI'��� + ,�������� �� �� � � &� 2 �'�� /'* ��I�I� +� ) -��� ����� ('' �ICI= +� )�) $)* �I�I� +� ) �� � � G )�� (&' �I�IH= +� )� .$- CI�I� +� ) ��� � � � �� � �� �#���� /'* �CI�IC +� ) -��� �� � $)* ��I�IC +� ) A����� �� �� ���� .$- �ICI�� +� ) ��� � �� �� � 2 ��� $1 CICI= +� ) � � � � )�� .$- GICI�� +� ) ��� * � �� �� � 2 ��

Page 55: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ;

H��#$!��") �

$1 CICI= +� ) � � � � )�� .$- ICI�� +� ) ��� > � �� �� � 2 ��) $)* �CI�I� +� ) A����� �� �� ���� ��� �� ��� ����� 21$5J �I0���� +

��� &��� &��''�� 21$5J �I0���� +�� $%) �I� + ���� � >�� $%) �I +�� $%) I� +�) $%) �I=?! + � � 6��� J�2 � +�� ���� /'* �I(� )�� /'* GI(# )� /'* I(" )�� J�2 ����� )

��� =���� 6)!6C ���� � � ) ����� ����� ����� <)!<6 ���� � ��� ����� 7<!7C���� 6 G &� �'? �#��@ ����� ���� &��� �&� )' �� ������ +�'� ,�� ���� � ��������� �� �������� +&�9G�'+G�-G�7-@G+&�9G�G�G&��'? �#��@'+G�-��+-B������ + 2 �9�9 ��� - 2 �9&)�9 G � � �G )��9'���� $/1 �IKH LI�M $/1 �I�I9M �*+ �I�I�M (&' �I�I�M $+1 �I�I9M *+ �I�I�M

�*+ �I�I�F ����� �� �� ��� ������ � ������� )�6�)�!6+� ��� ������ WKH L> ������ ��������� ���� ������ ��� ������ #�� � � �

�� $/1 �I�I�M ��*+ �IKH==99""##==99""##LI�M (&' �I�IKH ������LM $+1 �I�I�M

�*+ �I�I�� ,��� ������ ���� �� ��������� �#"!9:;<= � �#!"9:;<= ���� � 2 +� � �&�2' ����� �����

.#�� ������ ��� ������� � �� �� � � ���� ����� � � &��'J �������

21$5J �I0����M ��*+ �I�I�#M 21$5J �I0����M � � � ��*+ �I�I�:M 21$5J �I0����

����� �#� � � � � �: ��� ������� ���� � �� � �� �#"!9:;<= � ���� � ����#����#"<=!9:;� �#":;<=!9� �#":;!9<=� �#"<=:;!9� �#"!9<=:;� Q���� ����� ����� ���� ��� ��� )L< � )L�+ �� ����� �� ���� ��� � �� S��� ������� ������ ��� ������������� :��� ��#��� � � �� ����>� ���� &��' �� #��� � ��� 21$5JL2*2 #�������

��� � �$ B":: M� �$ B� M�� �$ B# M� �$ B" M� �$ B!

$%) �I# � � )�!5 $+1 �I�I;� 1 � ������� �������

$/1 �I�I9 � � )<��� )<���.�2 �I�I�

$/1 ��I�I"

$/1 �I�I��

*+ �I�I� � � �G )<�1�2 &- �I# A�� �� � ���� �� �� 1 �2 ���&./ �I# � � � G )�2 &- �I! A�� �� � ���� �� �� � � ��

��� @G +7�9G))+� &��)'9G<-B 2 +&7G)���'BG#&���'-�9� �� � ��� #������� ���������� + 2

������� �9 �� ��� � ���� � ����� ��� �� �� !5 �� ����

�� "��� � ������ ��������E���� ��� � )6������� ������ ��� �� � � �E�� ����

����� ���� ��� ������J

Page 56: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

;! ��!��� � �"������� )�!� �!

��1"�)� � ����"��K!�E$E/L��1"�/)�!����1/ "�" �! ! ��� �#" �! ! ���8��K$E��1"

����� 7+%7 H==99""##==99""##

�5 � 0���� �������� � �2 & �I$����

)�� ��*+ �I�����I�M (&'&/ �IH M J�2 #4

$���� $+1 �I�I"�M $/1 �I�I9M (&'&�/ �IH ��

#5 �*+ �I�I�M $/1 �I�I#

"5 2 &- �I� M �&./ �I=

!5 /'*1 �I�I�M 2 &- �I�

��� �� ���� ���� ��� ������� ��� ��#� ����������� ��� ���� ������ �� �� ��� ������ ������ �������� ��� ���� ������ � ���� �� &� � )'�9�� � � ��9��� ������� ����� ����� � ���� ������ �� � � � ��� ,�� �������� ��� ������ ���� ��������� ������ �� ��� �� �#������ ����� ����� � ����������� �������

��� "� �� �� � �����H � ���� ���� � ������� 6�+��/J , �� �� � 2 &�'� %������ ���� � � �� ) � � � � &��� ��#���� ���� �����'� ,��� ��� � � �� ��� �� � 2 ��� � )� � � � � � &�� ���� ����' ��� � � ��� � � � �� G � � )� �� � �� � �

��� � �� ,

�� �� ����&�'� ����� ���� �� � )� ,��� �� � 2 �� � � � � �� )� � &�� ���� ����' ���� � &��� �'G)� �� � ��� �� � �� � � ���� ?��� �� /���EE�V����� ���� +�� ����� &)4�7'� )C�!)C6F "� I��#�� ��� -� A ����� ���� +�� ����� �� &���)'� �C)!�C+�@

� � �� � , ��� , � 3� ��� �������� ���� ��#�� �#� , � ��� ���� � � �� 3 � ������� � ,� � �� ���� ��#�� ���� #��� � 3�

��� ,��� ������ �� ���������� ����F ������� / ��� � ��B���� 0��� �����

��� 0������� ��#���� ���� ������ ���� ��� � ��� � ���� �� � �� � ���� �

�� � ���� �

�� � ����

��� � ��� ��� � ����

��� &�' =�� 1� 2 ����� � � � � � � ��� � �� �����#��� � ����� � �� �������������#���� ,��� ����� �� ������ ����� ���� ��� �� � �� ���#��� �� ��� ��� �� �� � ������ �)� � � � � ��) � ��� � � 1� �� ���� :� ��� � � 1��� �� ���� :7� & �� �� 1� � ��'

&�' $� 6 2��

��� �� ?� �� �����#���@�

&' ,���� ��� �� ����� �� ������� ���� �� � � � �� � ��� ��� ��� � � � � � � ��� ������� ���� �� �� ����� ����� ��� ������� ��� �� � � � ���� � �)� � � � � � � ) �

&�' ������� ����6, ���������� �� �� ������� �������� &�������� ���� �����������'� ���#��� ���� ��� ��� ������� ������ "� �� �� �� ��#����� �������������#��� ��� ��#��� ��� ������� ������ � ��*���� �������� &�������� ���� � � ������'� �� ��� �� ������� ������� ������� �� �� ���#���� �� � ��� 5 ��� ��� ������������ ��� ��� �� � ����� ��� ������� ���� � � � � 5� ��� �� ����� ,7��� ,� ���� ������� �������� �� � H � � &�� � ����'� ,� � �� � �� �����#��� ��� �� � %���� ������� 5 ����� ���� ���#���� � � ��� ���� �����#��� ������� � ���� ���� �� � ����� 5F ��� � �� �������� � 5�

&�' =�� ��� �����#��� �>� �� �� � �� � � � � � �� 2 ! � ,��� �� ��#� �� � �������� &'� ����H �����6 2 ��G� � �G�� � ��&)G

��G �

G� � � 'G����&)G

��G �

G� � � ' � +���

& ������� �������� �� �� ��� �� �� �� ����#�� �� I� /�E�����J =�� �� 2 )� ������ �����#��� ������ �� � 2 �� � �� � � � � � ��� ��� ��� �

�� 2 ����� � ) � � � �� �

� �� �� �� � � )� ,��� ��� � ����� ,���� ��� �� ������� ���� � �)� � � � � ���� ������� ���� ����F ��� ����� ��� �� ����� ���� ���� ��� ���� ������ ���� ��� � ��� ����

������� ���� � �)� � � � � �� � ) �� �� ��������� 8���

���� � �� G ���� �� ) � � � �

Page 57: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ;"

2"*���$$" �� *�"�)�"�� ��*!��"%��4!!K+� !��%�)���K������1/!���!�����F!��"!!"� ���"�)�!��"���"�)�"�� ��*!�0$�� ��/ $��!���!����!��K �O

$� ��� ,� 2 �� ,� 2 �� G � � �G ��� ��� ,� 2 ,��� G ,��� � ���� �� ) � � � � ,���

����&�� G � � �G ��' G

�������

,� &������ � ���� � ������' 2 &�� G � � �G ����'���

��� ��� ,� 2 ���� � ��� G &�)'������� �� ��������#�� 8��� �� G � � � G �� �+&�� G � � � G ����'�����-�� � ��<�� � ,�� ������� ������� ���� ���� ���� � �� ������ ��������'

�� ,�� � ���� ! � � � ���� ������ �� ���� �� ������� 7���)!�7� ,�������6 2 ����G � � �G�� 2 ����� � '�! � $��� ����������� ���� ��� � � ���� ������������� �� � � � �� 2 ��� � � � �

��� ,��� �� �� �������� �� � 0��� ���� &������� ����)�)!C4'�

��� ���� �� 2 &� � )'&� � 6' � � � &� � )'� �� %�� 6 2 +) G ��"(�G#&)��'-! �

(���� ,�� ��#����� ������ �� � � � ��� �� ���� ������ ���������� &�7' ��� ���������E�� �� ��� ������� �� 2 �� � � ��� � ������ � � ����� � ����� G )�

��� ,�� ���� � ���� � ����� &A�"'� ����� A �� � ������� ������� ��� " �� � ������������� ���� ��� ��� A� �� �H �� � 8� ����� ��� ������� � ���� � ������� ����F�� �� ��� 9� ����� �9� � ��� ������ �� �99��8��

"� ���� ��� �� ��� �� ����� � 8� ��� 9� �� ����� ����6� -� ) � � � )���� ��������� � ��� � � �� ������������

&)� )�66� ���)� +�6C� )��)� �<��� �4�6� �<�� 47�� 6�<�� )<���� �+C��'�

������� #�� �� �� � � � ��#� ���� ��� �� �� ;���������� /�[���� ��� ������?�� ���������� ���� �� &)44<'� )46!��<@� � � ��� �������� ����#�� �� H �����K����� ��� ���� ������� ���� � �� �� � ������� ������ ,�� #�� �� � 9� ���� %������������� �� � � 7 �� �� /� #��� ?12������� ����� � &)4��'� 47!)��@�

�� ,�� ���� ���� �� � ����� � � ��� �������� � G ) ��� � G � ���� � � � G )��� � � � G � �� ) � � � �� ��� � %�� ��� ������� ���� � � � �� ��������������� #�� ��M���� �����������F ���� ���� �#��� ������ ���� ������ � ������������ � ��� ��������� � �������� ������� � ������� : �� �� ���� � � ���� ��� ���� ���� ��� �� � � � � � �� ��������� � � ) ��� � ���� �� � � � ���� �� ���������� ����� ��� ���� ���� �� ) �� �� �������� �������� �G ) ���� �G �� ?���0� /� ���� ��� -� A ����� ���3�+ � &)44+'� 6�6!6C<� ������ ���������������� ���� �������� �� ���%��� ��� "��������� 3�� �� &)447'� 7�!�7�@

��� ,�� ��� � 2 6 ��� ������� ��� ������� ���� � � ������� ���� ������ ���� ) � � � &��'��� ���� ���� )&��'�&���)' � � � �&�G)'J )�6+7<� )�67+<� )�6<+7� )6�<+7� )6�7+<�)6�+7<� )+�67<� )+�76<� )+�<67� )7�<6+� )7�+6<� )7�6+<� )<�6+7� )<�+67� )<�76+�

I������� �� ��� �� �������� �� ��#� ���� � �)� � � � � �� ���� ��#� � �����"��� ���� ������������� ���� ������� ��#�#�� �� ������������ ��� �����

$��� ���� ��� 0 ��#����� ������ � ��� ���� ������ M �� ������ ��� �������#���������� ���)��� ������� �)����� �)�)��� �)����� ������� ���)��� ������� �6������6�)��� �6����� �+����� �+�)��� �+����� �� �������� 0� 2 0 2 � � � 2 0���� 2 ���� ��� ��� ���� &0�� 0� � � � � 0��' � � ��� �� � ��B���� 0��� �� � ��� ������&�� � )� �� � 6� � � � � )'� ,� � ��� ��������� ����� �� ������ �� ���� ������ ���������� ?��� ,����� "����� �� ���������� ����� ��� ���������� �� ����� &���)'� 47!))C� ����� )�@

(���� �������� � �������� ��� �������� � ��� � *� -� /��K ?�������������!��� /������������� &;�����J )C)+!)C)7'� )�+!)�7@� �� �������� �� � � ����� ���J 8�� %��� ����� ��� ����������� ���� ��� �������� � ����������

Page 58: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

;, ��!��� � �"������� )�!� �!

$�!#�1"��"�%III"�$!��"�� ��� #$!��"���1!� �!�"�!"$��"��%���"�% ��$�"����� ����,�$�� �������"�"���!#"$�%���"$����"�%!"�1�

���� � ��� 0 ��#����� ������F ��� ���� ����� �������� � ����* ���� � ����������� .#�� ��� �� ���� ������ ��������� �� ��� �����

��� 0������� ��#���� ���� ������ ���� ��� � ��� � ��� � ����� � � � � � ���� �������� :� &��� ������� 7�)�+!�6 �� ��� � ���� � �� �����'

� � -� �������� �� �� ����� ���� �� � � � ������ 2 � � � � �) ��� ���� � � � ������ 2)� � � � �)� ��� �� ������� / � �������� ��� &� � )'9 ���� ������ �� � � � �� ���� � � � � � � * �� ����� ���� �������� ����� �� � ����� �� ��� ����� � ��� ��� � ���������� � ����� ��� #���� �� � � � ���

��� 3�� ������� 5� ���� ��&��� � � � � ��' 2 W�� �2 �>�

��� 3���� ��� ������ � ������� +�� �� ��#� !� 2���

�&�)'�&� � �'��� �� ���

����� � ��� ��� ��� ��� ��� &������� )�6�6!�<'� �� � 2 #&�� �' ���� !��� 2&�9=����9'&) G #&�� �'���'F ���� +��9 � &= � )'�= ��� -��9 � )� ,�� � ���� ������ ���������� ���� ��� ��� ������ � ������ +C� �� �������� � +G- G 6+G- �!� G 6+ � �9 &4� �

�' � <��<�9� �� � )<�7 ��� ������������ ?��� �� 0� ��� ���

� &)4C�'� �!�� �� � ������� ������@

��� � ���� C� ��������� D��D���� ��������� ���� &) � � � � �'� ���� &� ) � � � �'� ��������� ���� &) � � � ��)'F �� �������� C 2 &) � 6'� &� ) 6'� &) �'� ,��� �� �� ��������D��� �� E��� � � � � E��� E��� ����� E�� 2 &) � � � � �'��&� �G)'C� &) � � � � �'�F ���������� D ��

&) � 6 +'� &� ) 6 +'� &) �'&6 +'� &6 ) � +'� &) 6 � +'� &6 )'&� +'� &� 6 ) +'� &6 � ) +'� &� 6'&) +'�

$��� ���� E�� ������ ���� ��� ��� &�G) � � � � ) � � � � �G)' ��� ���� ����&�G) � � � � ) � � � ��)'&� �G)'F � ���� ���������� �� &��) �' ����� � ��� E��

� E� ����� ��� ���� ���������� �� &) �' ���� ��� �� ��� ��� ���� ������� � D���

� ��� %���� /��� ���������� �� &) � �G)' ����� � ��� ��� ���� ������� � D��� �&� ) 6 � � � �'� ��� ���� �� �� ��� �� � &) � � � � �' �� ������� ��� ��� �� D�

��������� ������� �������� ��� ���� C��� �� ��������

�� 3�� ������� 5� ���� ��&��� � � � � ��' 2 W� � � � 5?<@ �2 � G )>�

(����� ,�� � ���� � ����������� ���� ������ �� ?3�@ +)� )������ �93

�-F��� =� ������ �� ��� &����� ����� ���� ���� &/����� )4��'� 7<4!7��� �� ������������� ���� ��� ����������� ���� ������ �� �� ��������� �� ��M���� �������������F �� �������� ���� � 2 + ���� ��� 6)+�� 6+)�� 6+�)� 6�+)� �6+)� �+6)� +�6)� +6�)�+6)�� +)6�� +)�6� +�)6� �+)6�

��� 8��� �� � ���������� ��#� ��� �������� ����� � � ������� 5�

��� ?��������E��@ ��� �� � � ��� 5��� � � �� ) � � � �� ,��� ��� 5� � �� � � )�

��� ?.���� ��#�� ��@ �� � � �� #���� �� � � � �� ��� � � P6� Q�������� ��� � � 5�� � � �� 5� � 5�� � � � G )� ��� ������ ���� ����� &"� ��#� ������ � ����� 2 ��'

�� ?1������ ��@ ��� � � �� )� ��� ��������� �� � 2 �� Q�������� ��� < � � ���� � ��� �� � 2 <� ��� 5� � <� < � �� � 5�� ��� � � �G ) &��������� � ������ � �'� Q�������� ��� 5���� � <� � 5� &��������� � ���� �� � <'�

��� ?������� ���@ �� 2 � � � P7� Q�������� ��� 5� � 5�� ��� � <� � � ��� � � �� � <� �� � �� � � � G )� ��� � � P��

��� ?A����� ���@ ��� 5� � �� �� � �� �� � <� � � � � )� ��� ��� �� � P6�=�� ���� 2 �� G ������ ���� 2 ) G �� G ������ �� 2 �� 2 )� �� 2 �� �� 2 )� &���.H� 7�)�+!&�;'�' ���� P� �� �������� �� ����� ���� � � � ��� �� ����� ���� � � ��

Page 59: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ;;

��!����)�%�%�� �"� ���!�"�3$���% �!%�"�� ��,�$�� "��$���%��$���� ��"�! ���% �����/ $�� � 4�1 �����2��1!�"!

���� P6 �� �������� �� ����� ���� � 2 < ��� �� G �� ����� ���������� ���� P+ ���������� ���) �����F ���� P7� �� ������ ,�� ���� � ���� � ���� �� ��� �� �� ���� �������� ������������ ))�� G )���� ����� �� � )��766)+)+�� � &Q�����E����� ��������� ������� �� ����� �� ����������'

��� "� ���� � � ���� C� ���� ������ ���� &' ��� ���� ���� &��) �'� �������� ����C 2 &'� &) �'� &) 6'� &� 6'� �� � �� ��� C��� �� C�� E

���� E��� � � � � E

���� �����

E�� 2 &� � � � �'�C���&� � � � �'&� �G)'� -� ��������

C 2 &'� &) �'� &) 6'� &� 6'� &� 6'&) +'� &) +'� &� +'� &) 6'&� +'� &) �'&6 +'� &6 +'�

�� � �� �#��� C��� �� C�� E� ����� E�� ����� � � � � E��� &) ���'C���� &) ���'&� �G)'�

-� � ����� ��#��������� ��� ��� ������ �� "���� ���� �� ������ 4+�

�� ,�� ������� ������� �� ��� �� ����� ��#��� ����� ��� � � � ��K����� ��������� $� � �� ) � � � �� ����� $� ������� ���������� �� ���������� ���� � ���#��� ���������� ���� � �� ��� "� ��� ��� �� ���� � � +F ��� + 2 &$$�$�$'

��� ������� +� ���� ����� ��� ��� ���� $���� ��� �� ���� ����� �� � � ������� $��� ���������� , ��� +���� ������ ��� ��� $��� � +� �� $�+

��$�� �����

� 2 )� �� +� � � � � �� � � �� � �� �#�� ��� � 2 )� 6� � � � � �� � 6� �� � � �� � ����� ��� ����� +�� �� +� ���� ��� %��� � ���� ������� �������� ,���� �� �� ��������� �� � � � �� 2 ) � � � �� ��� �������� $��� � +� ���� � �� ������ �� � � ���� �� ��� � ����#� #�� �� � � �� � � � �� � � � � � ���� � �� ������� � � � ���� 2 &��) � ?� �#��@' � � � +�)6 � � � &��) � ?� ��@'F ��� %��� ���� ����� ��������� �� ) � � � ��

��� &�' ������������ ���� ����� �����

��� ��� 2 �&�G )'��+� �� ��������&�' A����� � �� �� ���� � ����� #�� ��&' ������ ���� ��� � ��� ���� � �� �� � ������ �� �� ����� � ���

����������� ����������� �������� � ������� )<� ��� �� ��� H �������

��� �������� � ������ ��� ���� ��� ��M���� ����������� ��� ��� �� � � ) � �#��� � �������� N� ���O ���� �� �� ��� �������� "� �� ��#� ���� ��� ��� �� ��������� ������� ������ �� ���� ) ������� �� ,�� #�� �� �� ) � � � )7 ��� �� �� �� �� <� �� )C+�46<� <<CC� �� +��+C�� +�4C<<+� +++�7)+�� �� <�6�<�)+�<�

��� &�' -� ��� ���� ����� �� � � � ��� ������ � ������� �� ��� ���� �� �� � ����F������ ������ � � � ������� ���� �� �� � ����� & ���� ����� ���� � N������O�������� ������ �� ���� ������ "��� ����� ��� �������� ����� N������������ �������������F ������� 7�6�)!+ ���� ���� ����� ��� ������������ �9�&�&�� �'���' � ����� 0��� �� �� ���� ������ �� ���� ��� ���� ������ � � � ���L� ��� ����� ���� ������� �� ������� ������� / ���� 0��� ������ �� �� ��� �������

&�' ����� ���� �� � � � ������ 2 � � � � �� ��� �� 2 �)� /����� ������� = ���� �� ���� ���� � 2 �� -��� � � � ���� �� � � � � � �� 2 ����� ��� ��������� ��� 2 �� Q�������� ��� �� � ���� G ) �� ) � 5 � � ��� � � ���� =+� ?��� I� I���� � �� -�������� ������� ����� �� &)4C+'� )�)!))�� "��� ������� ��H ���� �����������E�� �� ��� ������� ����� �� � ������� ��� � � �� ���� � � ) ��� ��������@� � �� ���� ������� ��H ���� �� �� ������� �� � ��H ��� � ���������� ��������� �� � �� � �� � �� � &/������ �� �� �� ���� ������� ��� �������������� ������ ������� ��� �� � ���� � �� � ���� �� ) � � � ��'

��� .#��� ���� �������� ��� H ��������

��� ��?��2� @� �� ���� �� 8� �� "���� �

��� ���� � �� ���������� � ����� ����� �������� � ��� �� ��� ��� ��� �����J ������ �� ��� ��� �� �������

Page 60: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

;. ��!��� � �"������� )�!� �!

K���"�$����� $�!!$�"�%

,�� ��� �� �� � ���� ��� ���� � ��� )69 �� S�� ��� � ���� ��� �������,��� ����� ��� ��� � ��� ���� ������F � � )69 �� <���������C��� ��� ��� �#��������� ����� � C���C ������

,�� �� �� ? � /���������� ����� ��(���� � &)4C4'� )6)!)66@ �� � ������������� �������� ���� ��� %��� ������ )# � � � # ����� # ������ � ��� ���� �� ������F �� ���� � �� � ��� � ��� ���� ��� #�� � ����� ����#���� , �#� ���������� � ��#�� ������ �� � � � ��� ������ ��� � � ) � � ���� ������ �� 2 � � �� 2 # ���� ��� �� ��� � ���� �� ,� � ��� ����������� ������� ��� �)# � � � #� 6#)# � � � #� � � � ��# � � � #)� ��� ������� &���� <##�)6 �� � 2 <' ��#� � ����������� �#�� �� �� ����#��>� � ���� ��� ��� ���� �� �� �� ���� � ������ ��� ���� � �������� ������������� �������������� ��� �� �� �� ��� ��� ���� ��� � ���� � ���� ���� � #>� �������� &�� )'9��9� 8��� ��� ���� � ���� � ���� �������� �� ������ &�� )'9 =�"��� � 2 )6 ���� �� )�6����<)�6+7�

,�� ������ �� �� � ���� �������� �������� ���� ������� ������ # � � � # ��� � �����#�� ��� �� ��� ���� �� �� ��� ���� � ����� ��� �� ��� &� � )'9 ���� ������ ���� � � � � � �� ���� ��� � ����� �� ��� ���� � � % ���� ��� ���� � �� �H ��� &%G)'&%G�' � � � �� �� ���� ����� �� ��� :&%' � ����� �#�� ��� �������F �� � ������ �� � �� � � ���� � ���� ��� � ����� �� �� ���� ���� ��� �� �� � �� ������������ ���� ����� �������� ���� ������� 5 ����� � � ����� ��� �� ����� �� ������� ������ ���� ��� ���� ���%� ��� � ��M�� ��������� ���%���� ,�� ��� �� ������� � ���� �� ���� ��� #�� � � ���� �� �� � ����� "��� � 2 )6 ���� ����� ����� ������� ��� �������#��� &)� ))� 4+�� <4<�� ++�+7� �+7�C6� )))C�)<� +))�<�<� ))�4C�����<7+)<))� ++6C����� 6�+)�674' ������� �� ��#��� &)� �� � � � � )�' ��� � ���� � ���� ���� +C��<<6�4�� ������ �#��� ��� �� �� ������� ��� ����� � ����� ��� ����� �K�� ���%����� ������� ���� �� � � ��� ���� )) ����� ������ ���� ��� ������������ ���� � 2 )6�

,�� ��H � ��� � ������ ������ C� �� � ����� ���� � 4 + 7 )) )� )� ) C )6 6 < ��

��� ,��� ��� �� ���� �� ��� ���� �� ����

�� � � � �� � ���� ���� � � � �� ������������ � � � ��

���� �� 2 �� ����� �&�� �' � � � �&�� �� )' �� �� ��������� ���� ����� � ��� � � � � �� ) �� ���� �� ����� � ������ % ������� #�� �� 1&)' � � � � � 1&%' � ���� � ���� ���� ����F �� ���� ��#� ���� �� ��� ��� ���� ������ �� ��� ���� ��� ��������� S�� ,��� �������� �� �#� � ���� % 2 )�

=�� 1&�' �� ��� ������� #�� � � �� �� ����� � � %� ��� � ���� �� � ������ ����� � �� 1&�' 2 )� ��� � ���� � ���� ������ �� G ) � � G ) � ���� Q�������� � ���� ��� �� ��� � � ����� ���� ������ ���� ���� � ?���� &�#��% ��

&)4��'� �64!�+)�@

,�� #�� �� � :&�' �� ) � � � )< ��� &�� )� �� +� �� )�� )<� ��� 6�� 6C� 7)� <7� C��)�)� ))6� )64'� ��� ���� ��� ���������� �� �������#��� &)� )� �� �� )� 7� �� )� )� )� )� )�)� +� <� )' ����� ,�� ��H � ������������� ���� ����� �� � 2 )< ��

4 )� < � � )+ C ) )) )6 7 + )7 )< )� 6�

��� ,�� ������ ����� � ������ )�� � ������ ���� :&�' ������� ���� �� ������� ���� �� � �� � &�� ������� ���� �� �������'�

��� -� � � � � 4 ���� � ��� ��� #���� +� 2 ?�� �"� @ � � � ?�� �" @ ��� -� 2?� �"� @ � � � ?� �" @� ,��� ��� � ���� � � � � ���� +� 2 * � �� �H �� ��� � ����

Page 61: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

)�!� �! ��!��� � �"������� ;)

�#��$" �!��!"�� $"$�"� ��"# � ��� ���1�� "!���"����/!/ %������"�"�����1 !�%�������% ��*!��#��%��"%�)�!��

� � � � ���� -� 2 *� �� ��� ��� #���� *� �� �� �� ��� #�� �� ��� � +� 2 * �� ���� �������� � ���� ������ � �� � -� 2 * �� ��� ������� �����

-� �������� ��� ��� #���� �� ��� ��#�� ������ ���

&+�� � � � � +�' 2 &>� ;� =� �� :� 9� �� �� "� �'� &-�� � � � � -�' 2 &:� �� =� ;� "� �� 9� �� >� �'�

�� ���������� ������F ���� �� � � � �� 2 C6���<)7+4 � C6���<47+)��� � ������ ������ �� � �� ���� ��� ��� #���� �� � ���� ������ �� � �� ��

������ � ��#� ��� ������ �� ����� � �H �#����� ������� �� ���� ������F ������� ���������� ��� �������#��� ������ � � ���� ���� �������

���� �� ��� ������� ����� ���� �9�� #������ �� � � � ���� ��� �9 ��� �� � � � ���� ��� � � � ���� &�� �� ��� ���� ����� �� � � � ��'� ��� #����� ��� ��������� � ��� �������� �� - ��������� ��� ����� ���� �� � � � ���� � �� � � � ���� � � � � � �� �� � � � ���� � �� � � � ������ � � � � � ����� � � � ����� �� �� ��� ���� ��� #����� ���������� ��� ��� ����� ,������� �� . ������ �� �� ������ �� ,����� ��6�+��1���� � � � �� �� ������ �� �H �#����� � � ��#����� ��� � ���� ������� ,���������������� �������� ������� ���� � 2 + �� &)�6)�+)6�)6+�)+6�+6)+�6+'�

���� ;� ������� ��6�+��!�� �� � �� � �� ��� ������� ����� ���� �� )� � � � &���'��� ��� ������� � ��� �������� ������F ��� ���� ����� �� �� ���� �� ���������6�+��!)4� -� � � < ��� � ����� F� � �� � � �� �������E����� ������J F� 2 )�F 2 6� F 2 �

� � 6� F� 2 � � 6� � 7� F� 2 �

��� � 6� � 7� &8��� �� ������ &)�)6�6'� �� ��� ���� ��� �� &�)6�6)'� � � ��K����� ��� &)6)�6�'�'

I��� ��� ��� ���#���� ��� ������� ����� ��#� ��� � �� �� ����� #�� ���������J $��� %��� ���� � ��#����� ��� � ���� ������ �� ��� �H �#����� � �'��������� �� �� � ��� ������ ����� ���� ��������� � 2 &) � � � � �' ��� $ 2&) � � � � ��)'� -� �������� ��� ��� �� ��� ���#� � ������ �� � 2 + �������� ���� �� �� �$��$��$��$��$��$��$�

$� ������ ��� �9 � �9 ������ 6 2 �G � A � "� ����� A � 2 ?(�2($@ ���

" � 2 ?(�2(�@� ,���� �� � ������ H � � ���� H�AH ��� H�"H ��� ��#� ���

������� ��� �������� � �! ���� � �!��! ������� A! ��� "!� �� ��� �������� I� �� ����� �! �� �9 ��#���� �� ��� ��� � � ��� �� ������� � ����� I &,�����7�)�+8'� ��� ����� A! ��� "! ��� ������ �������������� � $ ��� � ����� � P �������� �� ? ��� �� �� � �� �� ;� � ������ ��� �������� �� &/��% 0�#��������J "������� \ ;���L���� )44)'�@ -� �������� ���� � 2 6 �� ��#�

A 2

� � � ) � �� � � � � )� � � � ) �) � � � � �� � ) � � �� ) � � � �

� �� " 2

� ) � � � �� � ) � � �) � � � � �� � � � ) �� � � � � )� � � ) � �

� �� H 2

) ) ) �) ) �) ) �) � � �)) ) � ) �) )) �) �) ) � )) �) ) � ) �)) �) � �) �) �

� ��

H�AH 2

) � � � � �� �) � � � �� � � ) � �� � ) � � �� � � � � )� � � � ) �

� �� H�"H 2

) � � � � �� ) � � � �� � � �) � �� � ) �) � �� � � � � �)� � � � ) �)

� �

���� ��� ��� � ��� ��� ������� �� ��� �������#� ���� ������ )� �� ��� $� $��$��F ���� � 2 ���� 2 ) ��� ��� 2 �� ,������� ��� �����#�� �� � 6 ��� ��� ����

Page 62: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

;< ��!��� � �"������� )�!� �!

� ��",� $/$!�#�� I� � �!���� �������� �����#�� �� � ��� �! � �! ������� �G � A! � "!� �� ����������� ��� �����#�� �� � &�'� &�'� ��� + �

���- ���� ��� �� � �� � ��� ��� 6 �����

,�� �����#�� �� � 6 ��� ������� ������� � ���� � ��� ������ + �� ���������6�+��!)4� ������� ��� �����#��� � + ������ �� �����#��� � 6 � �� �� �H ��� ���������� �� ���� ������ ( ��� ($��� ��� �� ��� ( ��� ($�� � A G " ����H ��� -� ��������

+ 2

� � �) �)

�) � �)�) �) �

�� ��� �����#����

� )))

�� �

� )

�)�

�� �

� )��)

�� �� �����#�� �� �� 6� 6�

�������� ��� �����#���� &)� )� )� )� )� )'" � &)��)� �� ���)� )'" � &)� ���)��)� �� )'" � 6�� ��� ���� �����#�� ��� ��6 ��� �9�� ��������� �����#����� ���� ��� �������E�� ����� ���� ������� �� ( ��� (��$ �� ��� (� ��� �� ��� ��� ($� ��� (��

� AG" ��#� ��E�� ������� �� � ��� ( ��� (��$F � � #���� ����� �9�� ��������������#�� ��� ��� �H �� � ��

,������� F�� ���� �� ���9 ����� ��� ��� � � ��� ��E�� �����#�� �� � +��� ����� ���9 ����� ��� ��� � � ��� ��E�� �����#�� �� � 6 �

3���� ������ ��� ���������������� �������� ��� �� ���� �F F� �H ��������6��7�����))��+6��6���4��)�4� � ��� F� �� ��#������ �� 74��4�)6)4<666

��� � � ����� �� � ����� ���� � �� ����� � ���� �� ���� � ������� ��� �

�� ��� �� �� ��� �� �� ;� �M� ���� �� ����� ����)�)� ; � � ������ ���� ������ ��� ���� � ���

Page 63: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

��� �� �� �����

!$�� %� ��&�' ���() (�*�(+ �� % �%,� ����%����, % (���-%�� �'�(��+�. +�� %�+� �$� ������ ���$%� �'�(��+� *�( */(�$�( ��*�(�%����0 �� %�+1�( �%,� �+ ��� ��&�'�& $�(� /���++ �� (�*�(+ �� %����� ��� ����/&�& �� �$� +�%������ �* �$� �'�(��+�0

23�(�,�� ��&�'��,. 40 3�/5�. 67�208�9 ���8������+0 �9 ��� �,%���+0� ���(��� (%����. �:. �2. �;0�7� �%�$. �27��. ��0���� ��(�/�%����. ��7��. ��0

�&&���-� %��$%�����+. ;7:. � 7�#. �20�&<%���� ����(�$%�,�+. �7:. ��. �#. # . ##0�=�. ����� ���(,� ���� ���� ���. # 0���$%�����+. ;0

%&&���-�. ;7:. � 7�#. �20&�/5�) �(/�. �60�/�������%��-�. �60�/(�. :. �47�60

����(�%���, ,(�/�. #. �;0��%�)+�+ �* %�,�(��$�+. �;7��. � 7�#0����)��, % ��(�/�%����. 47�20�(�+%1%. %=��� � �. �0�(��>��%� �������,����. �40�+����+. ##0�++�,����� �(�5���. �;0�/����(�$�+�+. 67�2. �4. �60�-%��. �$�(1�� �%(=�(. #�0

�%�%���& ��(�/�%����. �;0�%(1���. �(�%� ��5�(�. �60���&��(. ?�$� ���$��). ;0���� (��,��,. �. 7#. ��0��(��/���. ?%�@/�+ �A ?%=�5 A ?%��+�. �60�(��+�$. ���$%(& ��1�+. �0�(�,$�1���. �(%$%� ���$%(&. #�0�(/�<�. ����%%+ ��-�(� &�. �)���. �:. #40�/55�� +�(�. �0�/�=��). ��$%�� �0 !0. �40�)�%++��, 5���=+ �* ��(�/�%����+.

��7�;. �2. # 0

�%�5(�&,� ��(�)3��,$�. . #0�%�>��&. �%(� ��&��). #�0�%+���, �/� ����+. �0�%)��). �(�$/(. �20

,(%�$+. �2. ��7� . 4. #:0��+%(�. ��/��� ���� �%�� �* B%�� ��((%(�.

�/�,� �%*%�%��. �/�,� �(����. %�&B%(�� �(��. �0

�$%��. �#0�$%�,� (��,��,. �. 7#. ��0�$��&+. ��) �)&��). �0����' �(&�(. # C ��� ���� ��-�(+�

����' �(&�(0�������� (��%����. �;0

�������. ��5�(� �$(�+���$�(. ��. ��0������. ��/�+. # 0���</,%�� ��(�/�%����. ��0���1%). ?�$� ��(���. �;0���=�. �%)���& %(=. #:0��(�/����. ��0��/��� ���������,. #;0�()��%(��$�+. ;0�)��� +�(/��/(� �* % ��(�/�%����. 4. ��0�)���. /�&�(����&. �40�)���� ��(�/�%����. �#0�)���� +$�*�. �4. �2. ��. �20

&� �(/�<�. ����%%+ ��-�(�. �)���. �:. #40B���% +�@/����. ��0B�(%�,�����+. �#0B�<=+�(%. �&+,�( !�<5�. 0B�(����& ��(/+. � 0B�/5�) �(%) ��&�. ��0B�/5�) �(/� %��$%�����. �60B/%� ��(�/�%���� ,���(%����. �:7�6. �20B/�=1�(�$. ���$%(&. ���. 0B/&���). ���() �(��+�. ;. �6. �0

�$(���$. ��&��� ������ ����. �6. ��. 2. �0+1%� ���$�&. �67�2. ��7��0

��,��-%�/�+ %�& ��,��-����(+. #:7#40��,,(��. !���). �4. �60���+����. B%-�& �(�$/(. �0�(. ��, �$�%/ � �. �;0�(&D�+. �E%� �A �%/��. 60�/��(. ����$%(& �������� ������

A ����� ������. +/��%����*�(�/�%. �0

�/��(�%� ��(�/�� �� &�(����& ,(%�$. #:0�-�� ��(�/�%����. #. �;0�'��/+�-� �(. #�0�'�������%� +�(��+. �%(��%� +/�+ �*. �60�'���&��, % �%(��%� �(&�(. � 0

�%���(�%� �/�5�( +)+���. �40�%���(�%� (/��( */������. �20��((%(�. B%��. #60��5��%���. ����%(&�. �* ��+%. �/�5�(+.

�;. #�0��(+�3������� +1%�+. �67�2. ��0��+�$�(. �/&1�, ?�+��$. �60��-�3�����( 1�(&+. �40���� ���(%����. ��7��. ��. ��. �;. #0�(%��=��. �-��F(� � ����� ��������. ##0

#6

Page 64: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

./ �B�" �B �������G

�%���%�. ?�+��$ ���$��). #20�%���+. E�-%(�+��. 60�%(&��(. %(���. �6. �:0����(%� ��(�/�%���� ,���(%��(. �27��.

��7��. �67�20����(%���, */������+. ���$��@/�+ *�(

/+��,. �:. �67 2. # 0���&+����. ��%� ?%). ��0���FE%��F3 �((�+. ��(�E%� �������. �0�(%�&+�(� B�/5��+. #0�(%). �(%�=. 5��%() ��&�. �0�(%) ��&� *�( �%��$��,+. #�0�(%) ��&� *�( ��'�& (%&���+. �. 2. #. 60�(%) ��&� *�( ��(�/�%����+. ��7��. #�7##0�(%) ��&� *�( 1�%= �(&�(+. ##0�(�/� �* ��(�/�%����+. 67�2. �2. #0

�3�(&�(�& ��(�/�%����. �#0�%������. !����%� ��1%�. ��(�/��. �.

�27��. ��7� . 4. #:0�%�$. �. �27��. ��7��. :7 40

�%1%��. �40��%�. �(�%� ���$%(&. ��. �#. ��. �2. � . �0��'%&����%� &�,��+. 6. #:0���&��5/(,. �%(� �(��&(��$. �0���= ���,�$+. #:0�/���(. ?%��+ ��+��� ����. ;0

�&�����) ��(�/�%����. 60��%,� �* %� �������. 40����/+��� %�& �'��/+���. # 0��&������+%5�� ��(�/�%����. �#0����(���. ��. ���0��-�(+� ��(�/�%����. � 7�#. �4. #�0��-�(+��� �%5��+. �. �4. #�0��-�(+���+ �* % ��(�/�%����. �. #0��-��/����+. �#7�;. 4. #�0�-�+. �(�&�(��= %�����. �20

?%�=+��. �(%&��) !%((��. �:0?�%�,. ��, � �. ��0?�$�+��. ���%� !����%�. ?(0. �0?�$�+��. �����( %(���. �40

8%$%�. ���-�� ?%). �08���. �%���(. �408������9 ��� �$�/+%�& ����() %���++�+08��,$�H+ ��/(. ��(�$�%+��(�). � 08�/�$. B��%�& �(-�� � �. �. �-08�����H�%=$�(. I�%&���( �����H�-��$

������������� �����������������. ��0

8(%/+�. 8%(� �$(�+��%� �(��&(��$. �60

�%�,&��. ���� ���(,�. ?(0. �6. ��. � 0��$��(. B�((��= ���(). �0��'���,(%�$�� �(&�(. �. 40��'���,(%�$�� ��(�/�%���� ,���(%����.

��. �#. �;7�:0*�( ��-��/����+. # 0

��'���,(%�$�� +/���++�(. �0

����%( ��5�&&��,. � 0���=�& ��+�+. �#7�;. # 0���+=�. !����&. ?(0. 0��+=�-��+. I%��() ���+���-��$ ���������

������� ���������. ��0������++ ,���(%����. �4. �. #�0

%�B��%�&. ����( �0. �40 %��$��,+. �#. �#0 %�(�' �(�� �$��(��. #:0 %'��%� �������. #�0 ��(%-). �&1�� �%(=�(. ?(0. �40 �8%). �(��&%� B%����. 60 �,%���9 ��� ������� ����() %���++�+0 ����%� �������. #�0 �'�&3(%&�' �/�5�(. �:. �:. �40���� ����/��( . ��. �-. ��7��. � 0 �&/�%( �(%) ��&� *�( ��'�& (%&���+. 60 ���� �%(�� �+���%��+. :0 �(. �+$� ���� ����. ##0 �(����. �/�,�. #60 �((�+. �(��+�. 0 /�������%� ��������. �:0 /�������%���� �* ��(�/�%����+. 40 /�������%��-� %��$%�����+. �60 /���+��+. �. �. � . �:. ��0 /�&). ����(. 0���� ��/������ �'��/+�-�3�(�. � 0 )(-��&. !��&) ?�%���. #�0

3�/5�. 67�2. �40�<��$/�+. ��5�(�. �20�<��. ��(�%�. �40�(�$�%+��(�) =��,$�H+ ��/(. � 0�3�������� �(�5���. �0)55��9 � 35�� @/%����). ��7��0

���%$�&(%� ,(�/�. �0�&& ��(�/�%����. #. :7 40�(&3����$. ���$%(& ��5�(� ?%��+

�A ?���)�. ��. ��. �4. �6. �2. �60�(&�( �* % ,(�/� �������. �2. #0�(,%� ���� �(&�(. 4. ##0

�%=. �,�( %(=�-��$ ����� ������������. 40

�%�3&�,��%� �/FF��+. �60�%(%���� ����/�%����. � . �0�%(��%� �(&�(��,. � . � . �#0�%(������+ �* % �/�5�(. �6. #:0���F%(+=�. %(��� ����(. #�0�����(&���. ��&(�1 ��1%(&. #;0��(�/�%���� ,���(%����. �7�:0

�)���� +$�*� ���$�&. �4. �2. ��. �20&/%�. �:7�6. �20�$(���$ +1%� ���$�&. �67�2. ��7��0*%+��+�. ��7� 0,���(%�. �27��. ��7��. �67�20��'���,(%�$��. ��. �#. �;7�:0��'���,(%�$�� 1��$ (�+�(����& �(�>'�+.

�;. �2. #�0

Page 65: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

�B�" �B �������G .

��%�� �$%�,�+. 7:. �:. ��. �#.�:7�4. ��. ##0

1$�� �� /+�. �;0��(�/�%����+. �7�:0

%���)��,. 47�20���</,%��. ��0�)���+ �*. 4. ��0�)����. �#0&�(%�,�����+. �#0�-��. #. �;0,(�/�+ �*. 67�2. �2. #0�(%) ��&�+ *�(. ��7��. #�7##0�3�(&�(�&. �#0��&������+%5��. �#0��-�(+�. � 7�#. �4. #�0��-�(+���+ �*. �. #0��-��/����+. �#7�;. #�0�/�������%���� �*. 40���%����+ *�(. 40�&&. #. :7 40�* % �/���+��. �7�. � 03�������. �:. �20(%�= �*. �:. � . #�0+�,� �*. #. ��0+�,��&. �40/��-�(+%� �)��� �*. �:0/�3&�1�. �#01���35%�%���&. �;0

�*%J. ?�$%�� �(��&(��$. #�7# 0�$�����+. ?�$� �%�(��= �(�%�. �40�� ���. �:. �2. �;0��%�� �$%�,�+. 7:. �:. ��. �#. �:7�4. ��. ##0���+F�F)E�+=�. ���*%�. #�0��+��/�������%����. 60�(�*�(����%� %((%�,�����+. ##0�(��/�������%����. 6. ��7��. � . # 0�(��(&�( �� % �(��. ��. � 0�(K����. �%�+ ?K/(,��. #�0�(/�++�. �%(%. #�0�/(� %��$%�����+. :. �47�60

L/�/�. #�0

�%&��M��E�. �%&�M+. 40�%*%�%��. �/�,�. #60�%�=��, % ��(�/�%����. �:. � . #�0�%�=��. ��5�(� ���'%�&�(. �2. ��. 60�%����(�. ��-�(% ��(%++�(. 40��N����& �(%) ��&� *�( ��'�& (%&���+.

�. 2. #. #�0��-�(+%� �* % +�(��,. ��. �;0��-�(+� ����' �(&�(. 4. ��. �#. �:. �;. �40��-�(+��,. �. �4. 2. ��� ���� ���� ���(%����0���%� �/��(%�+. �0��+%() ��(�/�%����+. �4. 40�����. B�(�� ����� �����. ��. �#0���$�. ����(��$ �/,/+�. �40��). �$�� 8/�%( ������� ���� ��. �0�K/&�,�(. �$(�+��%� �(��&(��$. �0�/+=�). �(%�=. ��. � . 4. 6. #�. #�0

�%,%�. �(/�� ���. #:0�%-%,�. �%(�% B�%��. 4. ##0�%)�(+. B�(��$) ���,$. �0��&,�1��=. ��5�(�. ��0����F. ���$%(&. �60��,� �* % ��(�/�%����. #. ��0��,�%�/(� �* %� %��$%�����. ;0��,��& ��(�/�%����. �40���-�(. ��*(�& ���&+�) ���,$. ;0���+. �$%(��+ ���. 60

�%5��+. 67�#. �:7�4. �67�20�=�����, 5���=+ �* ��(�/�%����+.

��7�;. �2. # 0��%�*�(& �(%�$�%+�. ��. ���0��%( ,(%�$. ��0��%( �(%�+��+�����+. �67�2. ��0���&�%�. �%5�%�. 0

B�/5��+. #0���,�(. ��,���=%. #�0�1%����, 1��$ �$� >(+� �������. �67�2. ��0�)����(��+. 67�2. �4. �60

%5��%/'. � 7�#. #:0�$/����. %/(���. :0��3�%�3��� 5�%(&. �60���=��+. �$%(��+ �(�1�. �60�����,��%� +�(���,. � 7�;. � 7�#0��+1��+. �;0�(/+. 60

&�(����&. � 0�1�+��&. ��0

��%� �(&�(��,. � 0(%�+���-� (��%����. � . �;0(%�+��+��, %&<%���� �������+. �7:.

��. �#. # . ##0(%-����, +%��+(�� �(�5���. �;0(����(. �%�� �(���%�. #0(����(. !����%� $��%+. 601�+��& ��(/+. ��01�3���� *�(� �* ��(�/�%����. 40

��&�(����& �)���. �40��&���,. �;. # 0���-�(+%� �)��� �* ��(�/�%����+. �:0��(%�=��, % ��(�/�%����. �:. � 0��3&�1� ��(�/�%����. �#0�(�. B%(��. #60

I%(�%����+. �:. �2. �0I%(��. G%%=�- ���� ����� ���� �����. ��. �#0I%�(�@/%��. �����. ;0I�������5�. ��5�(� �%� ?%��+. �40

!%�+$. ����$) ��5�(� ����$��. #�. ##0!%)��. ��%�. �60!�%= �(&�(+. �;0!���35%�%���& ��(�/�%����. �;0!���+. %(= �(��$%��. 0!�+���. ��&(�1. ��0!$���. �(�$/( $��%+. ��. #0!��*. ��(5�(� �%/�. �2. ##0!����%�+��. ��%���) ����. ��. ��. #�0!��+��. !��*(�& ���(,�. #0

Page 66: THE ART OF COMPUTER PROGRAMMING A DRAFT OF SECTION

.! �B�" �B �������G

��� �5��1�+� �'��/+�-�3�(�. #�0 G�+$�,%$%(%. �5/)/=� �A �5�� �. �6. �0

G�/�,. ��*(�&. �%5��%/'. � 7�#. #:0