200

Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

  • Upload
    vongoc

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

��� ��� ��

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

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

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

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

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

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

��

Page 2: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

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

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

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

)���� �������� '��#���� *(� +� ,��� ����

��

Page 3: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�������

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

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

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

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

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

���� ����� �������� ��� ������ ���� ��� ���� ����� �� ������ �� ����� �� �� ����� ���� ���� ��� �� � ����� ��� ���� �������� ��� ���� ������� ���� ���� � ��� ��� � �� � ��� ������� ������� �� �� ��� ������� ���������� ����� ����� ����� ��� ����� ���� ��� ��� � ������ � ������� ���� ���� ��� ��� ������ � ��� ����� ������ ������� ���� ������ ������ ��� ���� ������ �� ������� � �� ��� ���������� � �� ���� � !� ��� "��� �� ��� ���� � ���� ��� ��������� ����� �� ����� � ��� ��� �����#���� ����� �� ������� ��������� � ���������

$���� ���� ������� � ���� ���� �� ��� ���� ���� �� ��� �� �� ������������ �������� ���� ��� �� �� ���������� �� ������ ��� ������ ���� ��� ��� �� �� ���� �� ���� ���������� ��� ������������� �� � �� �� ����� %�� ����� � �� �� ����� � ������ ���� �� ���� �������� �� ������ �� ��� �� ���� ��� �������� � ��� ��� �� �� �� ���� ����� ��� ����������� ��� ��������

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

���

��

Page 4: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�� �������

5��� ��� ������� � �� � ����� � �4��� � ��������� ���� ��� �� �� ��4������ � ���� ���� ���� �� &������� �!�*� �"�"� !�"� � !�"�*�!� "�!�!� "�6� *� �*�"� � *�6�!� *�6�"� *�-� � *�-�!� *�-�*� 6�!� � ��� -�" � ��� ��� ���� �� ������ ����� � �� ���� �� ��� ���� �� � �� ���������� �� � ���� ��������� ���� ��������� ��� ������� � ���� � �� �� �� � �� �� ���� ������ ���� �� ���� � ��� ������ �� �� ������� � ���� �� ���� ! ��������� � ��� ����� ����������7�� ���� �� � ���7 � ��� �� � ������� #���� � ��� � ��� ���������������� ���� ������ �� �� � ���

&��� � ��� ������ �� ���� �� ��� ���� � �� ���� ����� � ������ � �� ����� �� � ������� �� ��� ���� �� ��� ��� � 8����������9 ���� ���� �������������� 3 ���� ���� � ����� �� �� ��� �������� ���� ���� � ����� �� ��������� ��� )���� ���� ���� �� ��� *- � �����,� ���� � �������� *"� *-� *'� 6"�66� -!� --� ��� :"� +� ����� ��� ��� ��� ����; ��� #�������� �� �������� 6"��� :" ����� ��� ���� ���� ����� ������� �� ��� ���� ���� �� ������ ����������3 ���� �� �� ���� � ��� ���� � � �� ����� �� ��� � ����� ��������� ��� ����+�� � ����� � �� �� ����� �� ����� ����� ��� ��� �� ���� ������ �� ��� ����� �� ��� ����� � ���� ���� �� �� �����

� ����� � ���� ��� �� � � �� ���� ������ �� ���� �������� ���� � ������ �� � ��� ������� ���� ������ � � ������ � ����� ��� �� ��� ����� � ���������� ���� � ���� ���� ��� ����� �� ������ ��� ���� � ����� ��� �� �� #��������� 8����9 ���� ��� /��� ������� �� �� 8� ������9 ������ � ���� �� �� � ��� ���� ��� � ���� � ���� �������� ���� ������ �� ��� ����� ���� ���������� 6� -� " � "'� ":� -0� '"� '-� :-� :'� :0� 0.� ����� .0�

� ��� ����� � ��� � ������ �� � <!�6- � ���� �� �� ���� ��� ���� �� ����� ������ �� ��� ������ ���� �� �� ����������� � �������� � � �������� ���� ���� ���� �� �� � ����� ���� � ���� �� ��� �� ��� ������ +�� �� ��� ������������ � ����������� �� ��� ���� �� ���� "!�� ����� )=�������� ���� ��� � ����� �� ����� �� �� �������� �� ����� � ���� ��� ���� ������ � �� ������� � ��� ������ �� ��� ������ ��� ���� �� ��� ������� ����2�,

>���� ������?

��������� �������� @� 5� A����� � ���� ���� ��� ��������� �����

��

Page 5: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � �����

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

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

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

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

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

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

B� ��� �� ���� ������� �� �� ����� ������� � ������ ������ � � ���������� ����� �� ���� ����������� �������� ������� �� ���� ��� ��� ����� ����� �� ���������� ����������� � � ����� �� �������� � ������ �� =������ �� �� ����� ���� �� ��� �� � ����������� � � ����� ����

&��� ������ �� ���� ��� ���� � ���������� � � ��� ������� �����1 ��������� ��� #���� ��� ���� ���� ������� 8����������9 ���� ���� ����� ������ ��� � ���� �� ���� ��� ���� ����� � ������ ��� ���� �� ����� � ������ ��� �� ���� � � � �������� ���� ��� �� �������� ��� ����������� �� � !� "�� ��� �� #���� /������� �� �� ���� ���� ��� ����� �� "? C -1 ��� ����������� ��� ��� ���� ��� ����� � !"� "!� ! "� !" � " !� "! ��

B��� ������ ����� � � ��� � ��� ������� �����1 ��� ������ ��� ���� � ������� ������ D� ������ � ����� ��� � ���� �� ���� � ��� � ��� .? C "�-!:�:..����������� � �.� � !� "� *� 6� -� '� :� 0� �� ������� ���� ��� �� ��������� ������� � ����� �� ���� �� ������ ���� � �� � ������� � �� + �� �� ����� �� �� ���� ���� ������ �������� � �� ���� ���� �������� �� ���� ������ ��� ������� ���� ���������� ��� �� � �����

&� �� �� ����� � ��������� � � ��� ����������� ��/���� ���� �� �������� � ��� ���� ��/��� �� ���� E��� �� �� ������� � ������� � ��� ������ �� &������ !�"� � ���� ��� ��� ��� �� ����� ���� ���� � � ���� �� ��� ����� � ������� ���� ����������� � ������ � ����������� ����� � ������� ������

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

���� ��� ��� �� ��� ��#

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

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

� ������ �� �������� !�� $ ���� � ����

�������� �������� ���� ��� F���� ���� ��� � �� ���������� ��� ���� ������ � !� ������ ���� ������� � � ����� ������� 5#���� ��� �� �� ������ ����� � �4��� �� )��� � � � � ��, ���� ���� �� �� ����� . � � ���� ���� ��� ��� �� �������� �#���� ��� �� ��������� � ������� � � ����� ��� ���� � � � � ����������� �� ��� ��� ���� �� �� �� ��� ������ � ��� �� � � �� C �

B ����� ���� � ��� �� ��� �� ����� � ���� � �� ������ + �� ���� ���� �� ���� ���� ��� ����� ����� ). � � � ..,� C . ��� ������� � ��� ���� �� ���� ) � � � ,� C !�� � G� �� ���� ������� ���� ���� ���� ���� � ����� ��� �� ��� ����������� ������ � ������� ���� �� ��� ���� �� ��� ���� �� +���� ����� � �4��� �� �� ��� �H ��� ���� �� ��� �� ��� ��������� � ������� � ����� � ��������

Page 6: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! ����������� ��������� ����� '�!� �

�� ��� ��� � ���� �� ��� ��� ���� ��� �����4�������� ���� ������� �� ��������� � �4��� ��� � �� ����� � ����� �� �� ������� � )��� � � � � ��, �� ��������� �� �� ��� � ��� ������ ������ �.� � !� "� *� 6� -� '� :� 0�� �� ��� ���� � ������� ). � � � ..,�� C . �� )0 � � � 00,�� C .� � �� ��� ������ ����� �������+�� � �� ���� ��� ����� � �� �� ������ � ����� �� �����

. � �� � �� � � � � �� ),

���� ��� ���� ����� �� ����� �� ��H���� �� ��H���� ���������� � �������� )��� � � � � ��,� ��� ���� �� �������� � ��� ���� �� ������� � ������ ������� ��� ����� �

���

���

���

���

� � � �

� � � �

����

�),

�� � �����4���� ����� ������1 ��� 5#� *� I)�, ��� ������� *�"� I0�

G� ����� �� �� ����� �� ������� ��� ������ ��� ��� �2

� ������ � )!"��#���" ���������,� ���� � ������ ������ � �4��� ������ ������ ),� �� ������� � ������ �� ��� �����4���� ����� �� ), ���� ���J�� ������ +��� ��� ����� �� �� ��� �� �� ��������� � ������������

��� K������ �L��M &�� �� � . � . � � � �� ��� ��� �� � !�

��� K������M ����� ��� �4��� � )��� � � � � ��,� )��� ����� ���� ����� �� �������� �4��� �� ��� ���� ��� ������,

��� K3���� �� ��� ����M &�� � � ��

��� K(�� � ���������M � �� C �� � � ��� �� � .� � � � � � ��� ����� ���������

��� K�������� �� ��� �����M � � C .� �������� ��� � ������� B������� ����� � �� N ��� �� ���� �� ���� O!�

+ ������ O �� ���� � ��� ������������ ��� �� ���� ���� ���� ���������� ���� �� ���� ���� �� ���� � �� � �� � ��� ��������� G��� � C *��� ��� � � ����� � ���� ��� ��� � ����� �����������2

=� �� C .� � � � � � �� � )�� ���� ���, �� ��� � �����2=� �� C .� � � � � � �� � )�� ���� ���, �� ��� � �����2=� �� C .� � � � � � �� � )�� ���� ���, �� ��� � �����2=� �� C .� � � � � � �� � )�� ���� ���, �� ��� � �����2����� )��� ��� ��� ��,�

)�,

����� ����������� �� �#���� ��� �� + ������ O� ��� ���� �� ���� � ���������� ��� ��������� ��������

��� ����� ����� + ������ O ��� ������ � )��� � � � � ��, �� ��������������� �� �� � ���������� %�� ���� �� ���� ���������� �� ����� �� ��� �� ���������� �4��� �� �� ���� ���� ���� ��� ���� ����� � �������� ��������� ����� ��4�� �� $�� ����� ����� ����� ���� � !� ������ � � ���� �� ���� � ���

Page 7: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "

���� ���

����

����

����

����

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

��� �

����

����

����

����

����

����

����

����

����

����

�������

� ���� ���� ��

�� ����

����

����

����

����

����

����

'�( -��������� ������ ���

����

����

����

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

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

����

����

����

����

����

����

����

����

����

�����������

� ���� ���� ��

�� ����

����

����

����

����

����

����

'�( .��� ������ ���

���� �� � ��� ��� ������� ���� ����� �� � ���� � ��� ��� � ���� =� ����� ����� $�� ����� ���� � � C * ��

....� ... � .. � .. .� . .� . � . . � . ..�

..� . � � .� . .� . � .. � ...� ) ,

&��� ����� �� ������� � �������� �� ��� �������� ���� ��� �� ����������� ����� �������� �� ������ � ���� ����� =� ����� �� ������� �� ���� ��������� �� ����� �������� �� � ������� ���� ���� ��� ���� ������� ���� -������� ����� �� ������ ���� ���� ����������� � ��� �� ������ � �� ��� ����������� ��� �� ��� ��� ����� �� .... �� � �� �� =��� .)�,� �� � ���������� ����������� ��� ���� �� ��� ��������� ������� ������1 ��� ������� �� =��� .)�, ���� ����� � ��� �������

$�� ����� ���� ��� �� ������ �� ���� �#���� ��� ����� =� ����� ��� P� ������ � ��� $�� ����� ��#����� � �4��� ������� �� ��� ����� P�������� � �� ��� ��� � ��

P� C �1

P��� C .P�� P�� �)�,

>�� � ������� ��� ����� ������ .P� ������� ��� ��#����� P� ���� . ������ ������ ������ ��� P�� ������� ��� ��#����� P� �� ����� � ����� ���� �������� ���� ������ &���� ��� ��� ����� � P� �#�� � ��� ��� ����� � P�� � �� �� � ���� )�, ���� ����� � ��� ��� ������� �� ���� ���� � P��� � P� ��/��� ��� �����������

+����� ��� �� ����� ��� ��#����� P� C �).,� �) ,� � � � � �)!�� , �� �� ������ ��� ���� ��� � � ��� ��������� � ������ �)�,� ������� ����� P��� ���������� .P�� ��� ������� ��#�����

P� C �).,� �) ,� �)!,� �)",� �)*,� � � �

C ).,�� ) ,�� ) ,�� ) .,�� ) .,�� � � �)�,

�� � ���������� � � ��� ����������� �������� � �� ���� ���� ����� � .� ��� � �� � ����� ������ ���� ������ .� ���������� ���� P� �������� � ��� ���!� � ������ � )�,� �������� �� �4��� ������ �� ����� � ������ .� � �������

Page 8: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* ����������� ��������� ����� '�!� �

G��� � C !� N �� ���� . � � � !�� � ����� )�, �� � �� ���� �)�, �� �#�� �� !�N �)!�� � �,� ������ �� ��� ���� �� ��������� �� � ���� ��� ������� ����� ����� ������������ �� )� � � ������,� ��� � $�� ����� �#���� ��� �)�,���� ��� ������������ )� � � ������,�� ����

�� C �� � ����� � � � .� )�,

)&�� ������� -�, =� ����� �� ��) .. .... ,�

�C ) .. . ... .,�� (��4

���� �� � �)�, C )� � � ������,� �� ������ �� ��� ��� � C )� � � ������,� �� ����������� ������ � �#������� )�,� ���������

�� C �� � ���� � ���� � � � � � � � � .1 )�,

���� ������� ��� �� �� � ����� ������� ���� C . � � ��� ��B�� � ��� ���� � ������ �����#������ � 5#� )�, �� ���� �)�, ��� �� ���4

����� ��� ���� � ���� ������� ���������2

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

&��� � �� ��� ������ ������� �� )�, ��������

�����)�, C � � ��! � ��* � � � � 1 )�,

���� �������� ������� �#���� ��� ����������� )��� ������� '� I..,� G� ���� �� ������ �� )�, ����� � � ��� �� �� ��� ����������� ��������

�)� � ��, C �)�,� �)��,� ),

Q�� ������ �����#����� �� ���� ��� )�N ,4��� $�� ����� ���� ��� �� ������

P��� C .P�� )P�� . � � � .,1

���� ������ �� �������� � ����� �� �� ) ,� (������� ���� )�,� �� ��� ����������� ��� ��� � $�� ����� ���� �� �#���� ��� �� ���� �������� ��� ������2

P�� C P� �

���� �� �. � � � .� ),

��� �������� �� �� ���� ���� ��� ������� �)�, ������ �� )�,� ��� ��� ������� ���� ������ �� )�,� ���� ���� ���� �������� ��� ��� �������� � ��������&�������� �� ����� � ����� �� �������� ������ ����� ������ �� ����� ������1�� ���� ����� �� ���� ���� �� �������� �� ������� �� �������� ��� �������������� ���� ������ L��� �� ������

$�� ����� ���� �� ����� ��� =��� $��� � ��������� ��� ������ �4���� � �� ���� �� ������ ��� ������ ��� ���� � �������� � �� � �� ������������������ K���� ������ ��� � �� ) 0"*,� *-*I6 6M� >� �������� P� ���� �������� �� �� �� ���� ���� ������ � ������ � ��� �� ����������� � ���4��� ����� � K��� ���� ������ ��� � �� ) 06 ,� ":I*.1 ���� ������ ������� ) 'O��� 06",1 G� R� %������� ����������� �� ������ ����������� ) 0' ,� !":I!*.M� %�� ��� ���� � 8$�� ����� ����9 ��� ����� ��� ���� �� ����� �� ��1� ����� �� �� ������� �� ���� ������ ������� �� $���� &�����L ) ! E����� 0*",� O�� ���������� �� P ��� ���� �� � �� ����� ������� ������������� :': �� S5�� � %������ ��� ���� ��� ��� 8����9 ��� ��� ������ +�

Page 9: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� 6

����� ��� ���� ����� � ���� � ��� ��� ���������� ���� � �� ������ �������������� � ������� �� B��� &��T�H � K��� ������ �� ����!��"�� � ) :':,�!6!I!6"1 #������ �� ����!��"��� � ) :'0,� "- � ":!I":"M�U

�� ���� $�� ����� ���� �� ��� ���� � ������ �� � � ����� ��� ���� ������������ ���� � � ��������� ��� ����� � ����� �� ��� 8(������ ��� ��LL �9�� 5�� ���� � ������ 5�� ������ ���� �� �� �� ��� 8����� �����9 =��� ������ �����4��� ����� �� ��� ��� ���� �� �� ����� ��� ���� �� ��� ��� ������ ���� �� ���� ����� �� ���� � ��� ���� �� � ��� ����� ����� � ���� �������� � )� ������ ���� ��� ��� �� ��������� � ������� �� ��� � ��������,2

�, ��� �������� ��� ��� �� ������ � �� ���� �� ��� ����1�, +�� ���� ��� ��� �� ������ � �� ���� � ��� �� � � ��� ��� �� ��� ����

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

G� ��� ������� ��� ����� ����� � ��� ��LL � �� ����� ��������� ������ � � ��� �� �� ��� �� ��� . � �� �� �H1 ���� =��� ����� ��� ���� �� ����� . ...� )��� ������ ��� �� ��� �� �� ������� �� .� ������� �� ��� ����� ������ ��� ���,

���� ���

/�� ������� ���� � 00���

+ =���� ��������� ����� F���� $�� ����������� �� ��� ���� ����������������� (������ ���� ��� ����� ������� �� � ���� �� �� �� � ����� ������������� K���M )F���2 +��S� ���������� :'!, ���� ��� ��� ����� �����4���� �� � ��� ���� �� �� ����� ���� � � � ��� ��� � �� ����� ��� ����� ������ C )���� � � � ��,� �� 5#� )�,� �� ������ ���� ����� � � ��� ����� �� ����������� ������� �� �� �� ��� ��LL �� ���� $�� �� ��� ��� ������� � $�� ����������

%���� �� �� ���� ���� �� � ����

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

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

G��� ��� ���� �� �� ��� ����� ���� ���� .. � � � . � . � � � .� ����� � �������� �� ������ �� ��� � ���� )�, ��� ��� � ���� )�,� B� � ��� � ����� ������������� ����� ��� ������ ��� 1 ��� ���� �� � ���� ������� ���� �� ���� ���� ������� + ���� )�, ���� ������� � �� � � 1 ���� �� ���� �� �� �� ���� ��� ���� ����� ���� �� ������� �� + ���� )�, ���� �� � �������� ���� ���� ��) .���,� � � � � � ������� � �� � � ) ���,� C � � )!��� � ,� G��� � ��

� ���� ������ ��!� � ����" ���� ���# $�"� %� �&!�&��" '# �(� �� ���#) %�� "�!�(�*�" �*��&��&+ ��(�+��*� ��$��&� �� ��� ��� ���� � ���"�� �&" �$�,�-(��. ��$� $(��� ��� �&����)�(����+� �(� �� "�" +�� � ��% "��( %��� �� *�$� �� *������# /�� �&!�&��&+ ��� ��(�*��&� 0 ���. 1. �#(��) ����� ���� �� ���� � �2345�) �647�829.

Page 10: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- ����������� ��������� ����� '�!� �

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

��� ��� � �� ��� � � !���1 �� ���� �����

� C �)�,� )�,

���� � �� ��� 8� � �������9 � 5#� '� I)��,� ������ ��� ���� � �� � ���������� ���� ��� ��LL � �� �� ��� ���� �2 � �� ����� ���� .� � � � � � � � )������� �� ��� �� ���,� ��� ��#����� � ��� ����� �� � �H ��� �� �� �����#����� � ������ ���� ���� ���� � � � � �)*,� �)",� �)!,� �) ,�

$���� ��������� ���������� � ������� ���� �� � �H ���� �� ���� ���� ������ ����� . � � � . )������ �� E��� G� �� ������� �� -0"� �� ��� ���� � ������ ���� ��� �������� � ���� ����� � � � ,� ��� �� �� � ������ � ���������� $�� ����� ����2

� ������ � )$��� ����� ���������,� ���� � ������ ������ � ����� �4��� �� )����� � � � � ��� ��, �� ������� ���� ).� � � � � .� ., ��� �������� �� � ��� ����� � ����� � �� ����������� � ����� ��� �� ���� ����

�� C ���� � � � � � �� � ��� ) ,

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

��� K������ �L��M &�� �� � . � . � � � �1 � �� ��� �� � .�

��� K������M ����� ��� �4��� � )����� � � � � ��� ��,�

��� K(����� ������M &�� �� � � ���

��� K(����� ��M � �� C � ��� � � .� B������� �� � � �� ������� �������� ���� C � )+�� ��� ��� ���� �� ���� ������ ���� ����� � C �)�,�,

��� K(��� ����� ��������� ��M �������� � � C �1 �������� ��� �� � � ����� ���� �� $!�

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

���� ����� ����� N���� ����� N���� N���� �����

��� ��� ��� N��� ��� N��� N��� ������

���� ��� ���� ������� �� ��� ����� � � ����� ����� � ��� ����� � � �������� � ������� &��� ���� ���� �#���� � �� 8��� �����4��� �����9 ��� �� ������ 5#� �"�"I)�,� ��� ����� ��� �� � �� ��������� � �������2 G������ �� ����� � ��� ���� � ������ ������� ��� ��� ���� � ���������� �� ����� ���������� ������� � ���� )�, � ���� )�, ���� �� ��� (������ ��� ��LL �� %�� ������� �������� ����� � + ������ $ �� ���� ���� $6 ����� �� � � ���� ���������� ������� �� ���� �� � � ���� � ������ �� ���� � ������ �� ��� ����� ���� �� �� ������� � �� ������� ���� �������� �� �� �������� ������ �� ����� ���� �4��� ��

�� � ����� ��� �� ������ �� ������ � ��� � �� � ��� �����'����� � � �

�(���� �� � ������ �� ��� ��� �� �� �� ���� ��� �� � �� ���� ���

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

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

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

Page 11: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� '

���� ��� "���� � ����� ��'�( ��� � � � 1� ���� ��� ����� � ����%������ � �����

�� � ��� ����

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

� ����

� ����

� ����

� ����

� ����

� ����

� ����

� ����

� : ; � : ��

� : ��

� : �� � : 2

+����� ��� ������ � $�� ����� ���� ��� ��������� �� E� F� G� ���� ���������� ���� �� �������� ��#����� � �������� ��� ����� �� %�� &��� ��� K��� #���� � $���� �� ) 0!",� 6I!*M� F�� ��)�, C � � �� ������ �� ���

��)�, C )� ,�����������)!�,� � � � .� )�,

=� ����� �� ��)�, C )� ,��� ������� ���� ������� � �� �� ������ � �������� � �� �

� � �� � ��� ���� ��)�, C ��)�N , � � �� ��� ���� ��)�, C � � � �� O�� ���������� �� ��)., C ��� ��)�, ��� �%���� � ���� ������ ����� �����&�� ). � � ,� �� ���� �� ��������� )� ,� �� � ��������� �� ��� ��������� ��)�, ������� ���� ��� � ����������� ������� ��� ��� � ��� ������� �� ��� ������� ���� �������� �� � ���� ����������� � G� �� ���������� ���� ��� ���� ��� �� ���� �� ��������� � ��������� �� =���� ������ �������� ������� ���� ��� ���� � ������� ����� � ��)�,� ����� G� �� �������������� � ���� �� ������� �� �� ������ � ���� �� ��������� ����������������� ���������� ��� ���� ���� ��� ���������

=��� ! ����� ��� ��� ����� G� �� �������� ������� ���� ���� ���������4�� �������� 5������� ������ � �� ��)�, ��� G� �� ������� � �'��� � ���� ��� ��� ���� ��� ��� ���� ��� ��� ��� ��� ��� ���� ���'��� � ��!� K&��� ������ �� ��� ���� ��"���� �����' (���������� ��� #!!�������� )D�� Q��2+������� 3���� 0'',� �� >� =� >������M

Page 12: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

: ����������� ��������� ����� '�!� �

+ ������ 5#� )�, ��� ��� ������ � �� ��� � ����� �� ����� � ������� ������ ��� �� ��� �� ��������� ��� ��)�, ��� ����� � � ���� ������� �� � ������ �� �� ����� ��� � C !�� �� ���� ���)�, C ��)!�, � . � � � �

� 1 ��� �H��� �� ���� ��� ������� ��� ������� ��)�, ���� �� ��� ������ �� ���)�, ��� ������ ����� ���� ������� �� �� ���� ���)�, C )� ,���)!�, C )� ,���)!� � , �� ������� �

� � � � 1 ���� ������������ ������ ���� � ��)!�,� J������ ��� ���� ��������� �� ����� � ���� ������ �� � C �

� � ��� ������� �����)�, �� ���� �� ����� ��� � � ���� ������ ���� � C �

� �

G��� ���� ���� ���� �� �� ���� $�� ����� ����; G� �� ��������� ������� �������� ��� � � �� �������� ���� � �� ���� � ���� � �������� �� ��(����� &�� ��� ��� K>��� R��������� $���� #������ � ) 0!!,� !I ":M�

��)�, C )� ,����� )�,

����� ���� ��� �� �� )� ,��� ���� )� � � � � �� �� �� � � � ,� �� ��� ����� ������4������ � �� ������� �� ���� ��)�, C ��)�,� ��)�, C ��)�,��)�,� ��)�, C ��)�,���� �� �����

��)�, C���

����)�,������� ���� � C )���� � � � ����,�� )�,

)&�� ������� ""�, ���� ��� �������� � ����)�, �� ��)�, �� ��� ��� ��� � ���$�� ����� ����� �)�,� �������� �� )�,� ��� �� ����

��)�, C ������)�,����)�,� � � � .� )�,

5#������ )�, ��� ��� ��� ����� ��� �

��)�,���)�, C �����)�,� )�,

����� �� ���� ���� � ���� ��� ����������� ������ ��� �� � ����� ����������� ���� �������� � ��� ���� � ������� ��)�,

� C � � � ��� �� �������)�,

��� C ��)�,���� �� ��� ��� �� ������ � ���� ��)�, �� ���&������ �� ���)�,

���� � �C ��� �� ��� ����� ���� ��� ������ �� �� � ��)�,���)�, �� L��� G� � ����� ��� )�, �� ����� ��)�, � ������� �� ��� � � ��� �! � "�:�

���)���� �����*��� � !� ������ )��� � � � ������, �� ��� ����� ������ ����� �#������ )��� � � � � �����,

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

����� ������ ��)��!�, �� �� � ��� �� ��� �� � . � �� � � !�� =� ����� ��

=��� ! �� � �� ���� ��� G� �� ������ ���� � C " ���

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

����������

C

����������

����

����

����

����

����

����

����

����

����������

� )�,

Page 13: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� 0

)>�� ������ � � � ��� ��� ��������� �� ���������� � ������ �� ����������� ...I ������� � �� ��� ������� .I'�, ��� )������� ���� ���� �������� ���� � �� ��� ���� ��� ����� "� �� � ��� � !�� ���� "� ��� )� ,���

�� �� � ��� �� ��� �1 ��� V� ��� ������� ��� ��� ������ ��������N � � �N����� ��� ����� ������������� � C )���� � � � ��,� ��� � C )���� � � � ��,�� =������ �� ��� >������ ������ � � C " ��

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

����������

C

����������

����

����

����

����

����

����

����

����

����������

� ),

���� �� ��� ���� �� ��� ������� =���� ������ �� �� �4���������� �����5#� *�-�*I)��,� ��� �� ��� ��� ���� �� #���� � 8�� � ���9 �� �������� ��� ������� Q���� ��������� �� &������ *�-�*2

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

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

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

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

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

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

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

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

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

D����� ���� ��� ��� � "� �� � ���������� � ��� ��� � !�� ���� �� ��� ������� � �� �� ��� ������ ��� G� �� ������ �� �������� ��� � ������ � ���>������ ������� 5������ "- ��������� ��� ����� ��

����� !���� G��� ���� ������ ������ !� ������� ������ �� ���� � ������ ����� ��� ����������� ���� �� ���� �� ������ �� + ������ $ ����� ������ ����� �� � ��� ��� �� �� ����� �� )����� � � � � ��,� ��� �� ���� �� ���� $*��� � �������� �� ��������� �� �� � �� +����� ������� ��� ���� ����������� $����� 5� ��� K #+$ �� ) 0'",� 6..I6 "M� ��� ��������� ��� ������ ������� ����������� ���������2 G��� � ��� ��� � ������� ��� ����� ���������� ������ ������� ���������� ������ �� �#���� �� �� ������� ���������� �� ���� ���� �� � ��� ���� ���� � ��� ������ ��� ���� ���������

G� ����� ���� ����� �� &������ '� ����� #���� ���� �� �������� �������� � ������ � ��� ��� .� �� � ����� ������ ����� ������� ��� � ������ �� ���� $* �� ���� + ������ $ ��� ���� �������� ���� � ����� �������4�� � ���� %�� 5� ����� ������ �� #���� ��H����� ��� ���� ��� ������ ���� �� ������� �� ���� � ��� ������ �� �� ����� � ������#��� � ������������������ >�� �� ��� ��� ������� ��� �� ���� �� ������� ����� �4��� ���

Page 14: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

. ����������� ��������� ����� '�!� �

� ������ " )*����� $��� ����� ���������,� ���� � ������� ��� + ��4���� $� ������ � ����� �4��� �� )����� � � � � ��, �� ��� ��� � ��� $�� ���������� %�� ������� � ����������� � ����� ���� �� ���� �� ��� � 8���� �������9)#�� � � � � #�,� ����� ����������� �� ��������� �� ���

"�� K������ �L��M &�� �� � . ��� #� � � � . � � � �1 � �� ��� #� � �� )+ ��� ��� � ������ �� � ���� �� ���� ���� �� ��� ������ �L����� ����� �� ����� ��� ������ ����� �� ������� � ������1 ��� � � ���� ����� ����� ���� ����� ��� ��������,

"�� K������M ����� ��� �4��� � )����� � � � � ��� ��,�

"�� K(����� ��M &�� � � #�� #� � .� )� ���� �� ��� ��� ���� �� �� ���������� ������ ����� � �� ��� �#�� �� �)�,�, �������� � � C �1 �������� ���#� � #��� ��� #��� � � N �

"�� K(��� ����� ��������� ��M &�� �� � � �� ��� ���� �� F!�

=� ����� �� ��� ����������� ������� �� � ��� ���� � C *� 5 ������ �� �������� ���� ���� �� ���� ��� � � ��� ����������� ��� �� �� �� ��� ����� ������������� ���� ���� �������� C �)��������,2

�� . . . . . . . . �� . . . . . . . .�� . . . . . . . .�� . . . . . . . .

#� " " " " " " " " * * * * " " " "#� ! ! ! ! " " ! ! ! ! ! ! * * ! !#� ! " ! * #� . . ! . . " . . ! . . *

+ ������ ��� ����� ����� � C )���� � � � ��,� ���� ������ ��� ���� � �� + 4������ F� ��� ���� ������� #� ������� �� ��� ���� � �� � � ��� ���� �� ������ ��� ������� � �� �)�, C )���� � � � ��,� �� ���� �������� ��� ���� �� ������ �� F���� ��� ���� �� �� �� �� ���� �� �� ���� ����� � ��� ��������� ������� ���� ������� ������ ��� � ����� �������� � ������2

, � �� �� ������� ��� ���� �� ������� ���� #� �� ��� ��� ��� ����� �� � � �������� ��� �� ������� )%��� ��� ��� �� �� ��������� �� �� ������ � �������� ���� � �� � ������ ���� ����� �� � ������ �� ��� � �������,

!, B������� #� C ��

����� ��� �������� � ����� �� � � � ��� � ������� � ������ ���� � � � ������ ���� ���� #� ���� ������ �� ��� � ����� �� /��� �� ��� �� � ���� � ���� + ����� ������ �� ���� #� �������� �� ������ ����

�� ����� ����� ��� ��� ��� ��������� V� � #�� #� � .� �� ���� F" ���#���� ��� �� ������� 8&�� � �� ��� ����� � ��� �������� ������ � ������ ����������� � � ������ �� ��� ���� � �� �9 D����� ���� � #� C .� ��� ��������#� � . �� ��������1 ��� �� ������� �� ��� ���� ��� ���� ��� ��������� � F"�V#� � #���� #��� � � N �� �� �#���� ��� �� ������� 8O��� �� ��������9 ��������� ���� ���� �� ��� ���� �� ���� ������ �� ���� ����� �� ��� ������������

��

Page 15: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � �����

)+���� ��� �������� #��� � � N ����� �� ��� ��� � ���������, ��� ����H��� � ���������� ��� ����������� �� ������ �#���� ��� �� �������� �� �������������� �� �� + ������ O� ���� 4���� ������� ��� .4���� �������

+ ������ F �� � ���� � ������ � ���� ������� �� ���� �� � ��� ������������������� ��� ��� ���� � ���������� ������� ���� ����� �� � �������� �4��� ��%�� �� ��� �� ���� ������ �� ��� �� ��� ���� ���� ������� �� ��� ��������� ��������� ����������2 R��� �� (������� �� )��� )��� � ) 0-:,� -6I -0� ����� ���� � - � ��� ���� �� ������� ��� ����� � ���� ���� �������������� ����� � �� ������ ���� ���� �� ���� �� � ������� � ������������ � 5�� ���2 ���� ����� ���� ����1 ��� � ��� ���� � ����� ����)���� � ��� ��� ��� ����, �� ������� � ������ �� �� �� ��#��������� ���� � ������� 5�� ���� ������ �� �� ����� �� ��� ��� ��� ����� #�������� ���4 ���� ����2 G��� ��� ������ � ��� ����� �� ������ ��� ������������ � ���� �� ��� &����� $���%���� ���� ����� �� �������������������� �� ������� �� � "! ������ � ����;

�� ����� ���� #�������� �� ���� ��� ������� � ����

� C "�-!6�0.:�!."� !6

�������� � ��H���� ���� � ������1 �� ����� �� ��� �� � ����

�C -�6-:�-*-

���� � ���� �� ��� $���%���� ������� ���� �� ���� ��� � ����� ����������� �� ���� ' ����� ������� ���� ��� � ' � ��� ���4 ���� ������������ � �� ��� ���4 ���� ������ ���� ������� ��� ���� �� 8�������� 9)���� �� ����������� ����� �� ������,� =� ���� ���� ���� �� ���� ���������� �� ���� � �� ������ � ������ ��� "! ������ � ������4����� ������� ���������� ����� � 5�� ��� �����

5��� 64 ���� ��� ��� �� ��������� �� � !64��� ����� ����� 6 ���� �� ����� �� ��� C ..... �� ��� C .. � + ��� � � !� ���� � ����� �� ������������ #���� � ������ � ����� ���4 ���� ����� �� � ���� &� ��� ��� ���� ������ �� ��������� ��� "! ��� ������� � ��� �������� ���� �������� ��� ������ ��� ����� � ��� ����� ����� ��� ������ ����� ������� �� �� ������ �� G� ��� ������ �� � ���� � ���� ��� � !64��� ���� � ��� ��2

#�� K(���� ��� ��H������M &�� $ � � � ��� R�/��� ��� ��� ��� )����, ��)$��,�$��

���� �C .� ���� � C !��N!�N!��N!N ��� �� C !�1

���� ���� � �������� ����� ���� � ��� �� ���� � ������ ���� �� ������������� )&�� '� I)��,1 �� ���� ��� ���� .�- *�.:6 � ��� -�6-:�-*- ������� ���� �� ���� ������ ������,

#�� K=�� ��������� ������M &�� �� � $ � )! � ,� �� � $ � )!�� � !,��� � $ � )!� � !��,� �� � $ � )!�� � !�,� ��� �� � $ � )!� � !��,� ����������� � ��� ���� �����

#�� K(���� �����M &�� � � ��� %� � �1 ����� � � �� ����� ��� ����� ����� �� ���� ���� �� �� ������� ���� �� ���� ���� ��� ��������� ���)*, ������ �� ���

#�� K3��� � ����4������� �� ������M � � ������� � �#�� � ��� ����� ����4���� ���� %� � . � � � ��

��� ���� � ���� ����4����� ������ �� ��� ��#����� � ��������� ���)*,� ��������� � �� �������� �� ��� )� ����� � ���� � ����4�������, �� � ������� �

��

Page 16: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! ����������� ��������� ����� '�!� �

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

�)�,2 &�� � � � ��� � ���� � � �� � ���� ��� %� � � ��� � � � N �

$���� �)�,� ����� J��� ��� ����� �� �������� �� �� �����

���)., C �).,1

���) , C ���).,� �) ,� ���).,1

���)!, C ���) ,� �)!,� ���) ,1

���)", C ���)!,� �)",� ���)!,1

���)*, C ���)",� �)*,� ���)",�

),

���� ���)*, ������� ���� � ��#����� � " ����� �).,� �) ,� �).,� �)!,�� � � � �)., C �)�) ,,� �)�)!,,� � � � � �)�)" ,,1 ����� ����� �� �� ���� .�� ��� ������ G� � �� � ���� ����� �� ��������� ��� � � ������� �� ����)�, ����� � ���� �� ������ ������� � ���������� ���� ������� � � ������� ��� ��� + ������ O� $� � F�

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

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

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

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

)�,

�� � ����� �� � C ���� ��� �� C ����� ���� �� C � � �� �� ��� ����������� �)., ������� ���� �� ����� ����� �� ���� �� �� � ���� ��� ������������ �) , ��� ��� ��� ����� �� �� �� ��� ����4��4 ��� ���� ��������� ���� ������� ��� ������ ���� +����� ��� ������� � �)., ������� ��� �� ��� )� ��� ��� ����� � � ���� �� ��� ��� ����,� +�� �� ��� + ������� ��� �� �������� �� ���� ������ �� �� ���� � �� ��������

=���� ����� ����� �� � �� ������ �� =� ����� �� ���� �� ���� ����� ��� ���� ��� �� � ����� �� ��� �/��� ��� ���� �� ���� �� ���� �������"" � � �������� %�� ��� ������ ����� ��������� �� � ���� #���� ���� ��� ������������� ��� ��� ���� ���� ��� ��� ��� + ������ F ��� �� �������

=��� � + ������ F ���� � ������ ���� ��� ���� �� ���� ������� ����� ������ �� � �� ��� ��� ������ ���� � C 6� ��� � + ������ F �� ��� ������������ ��� �� � � �� ����� � + ���� � ���� ����� ������� ��� � ��� ����� �� ��� � � � 62 G� ��� ������ ��� � ����� �� ���� �� ���� ��������� � "! �������� � ��� �������� ���� ����������� �� �����1 ���� �� ������ � + ������ F ��� ���� "! ������ ����� �� �� ������� ���������� ��������� ��� ���� ���� ���� � � � �� ���� ������� ������ ��� ������ � ��� ������ + ������ F �� ��� � � ���� � "!�

$��� ����� ��� ������ ��� $�� ����� ���� �).,� �) ,� � � � � �)!�� , ���� � ��� � ���� ���� �� ������ � ������ � �4��� ������ ��� � �������� �� �� ���� � ��� �� ���� ����� F�� �� ��� ����� �� ����� � � 8$�� ����9 �� ������4��� �� �� ��� ��� � )&�� &�� � � � � &����, ���� ��� ���� ���� �4��� � ��� ��� ��������� ���� &� ��H�� �� &���� ��� �� �� /��� ��� ��� ��������� ����� �� ���

��

Page 17: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "

���� ���

����

����

����

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

�� ��

����

����

����

����

����

����

����

����

����

�����������

� ���� ���� ��

�� ����

����

����

����

����

����

����

'�( ������������ .��� ���

����

����

����

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

��� �

����

����

����

����

����

����

����

����

����

�����������

� ���� ���� ��

�� ����

����

����

����

����

����

����

'�( 2������ .��� ���

������ ��� � ���� ������ � $�� ���� �� �� ������� >��� ������ ������ ����� �4����� G� ��� ������ ���� ��������� ���� ���� ������ �� ���� &� C . � � � .�

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

&���� ��� �� C &� � !� � � . � � � !�1 ) ,

���� ��4�� �� 8�� �� ��#�����9 �� ������ ��� �� ������� � $�� ����� =������ �� ��� �� �� ��#����� � ������� $�� ����� ���� � C " �� . .!. .!1�� �� �������� � ��� � � ������� � C �)�N , � )�,� ��� ��� ��� �� �� ����

�� �� ������� � �� �� ���� ��� ��� � � ����� ��� ��������� � ������ � � ���� �� �� ��� ���� . � � � �� ��� ���� �� �� �� 8�����������9

F�� ')�, �� ��� ����� � ��H���� �� �� ��#������ ���� ����� �� �4���$�� ����� ��� �� )�, �� ��� ����� � 8�������� 9 �� �� ��#������ �� ��������� ��������� � ������ ���� ��� ��� ��������� � � N � ���� ')�, C�? )�,� ������� ���� ���������� � ��� ��������� ������ �� � �� �� ��#������������ � ������� ������ �� �� ��#������ ��� �� � ������ � �������� �� ����#������ � � � " �� ���� � ���� �� ��

..1 . . 1 . .!. .! ��� . ! . ! � )�,

������ ) , C )!, C � )", C !1 ') , C � ')!, C !� ��� ')", C !� +����������� ������� �� �� ������ ����� ������#��� � ��� ���������� �>��� ������ ������� ���� �� �� ����� ���� ����� ����� ��� ���� �� ����

)*, C !1

)6, C 6� .0�.0-1

')*, C !-::1

')6, C �: "�.0 �6!.�)�,

D� ���� � ������ �� �������� ��� ��� ������ ��� #���� ���� � )��� ���4���� *6,1 ������ ���� � �� � ��� ��� ���� ������ �� ��� ���� ��� ������� ��� � ):, ��� '):,�

&���� ��� ����� � ������� ����� �� �� ����� ���� � ���� ���� ��������� ����� $�� ����� ���� ���� ��������� ���� ��������� =� ����� �� =��� ")�,����� � *4��� $�� ���� �� ����� ���� ����� �������� �� ��������� � ���������� ��� ���� ����� ��������� &��� ����� �� ������ � ������� ��� ����� ����� �� ���� )��� ������� *0,�

��

Page 18: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* ����������� ��������� ����� '�!� �

+� ���� ��� ���������� $�� ����� ���� �� $� (� ����� K���� �,, ����3�� % &��� ����� ) 06-,� *"6M� �� ����� �� =��� ")�,� ���� ��� ��� ��� ��������� � ������� �� ���� � ��� �� ��������� ������ ����� � �������������� �#�� � �� ��� ����������� $�� ����� ���� �� �� ����� �� � ���� � ��� ����� ��� �� ���������� � � ��� �� ��� � �� �� ����� ��� � ����� ������ ������� �� ������ � ���� �� � ���� �� �N ! ����2

%������ &� -�� (���(��� � � � (��� .� � ����� ��"���� *�� �� �/.�� 0��� ���12���� ��� �� �� � ������ ���������1 ��� (� �� � !����.�� ��!�� ��"���� �*����������1 ��� � �� ���� ���

(�)�N ,(�� �(�

��(��(�� )�N ,(� ��(�)�N ,(�� �(� � � � ����(�)�N ,(�� �(�

)�N ,(�� ����(���� � � � (

�� ��(

�� �

)�,

�� ��� ����� ��"���� �* �� )�N !,/.�� 0��� ����

=� ����� �� � �� ���� ���� ��� ��#����� . .!. .! � � C " ��� �� ��� �������� ���� � ������ �� ��� ��� ��� ��� ��� ��#����� )�, � � 64��� ���� ��

. * .". .!. " .!*!. .*"*. .!. ."� )�,

+����, F�� (� ���� ����� �� ��� �� &�� �� ��� ����� ������ � �� ���� ��. � � � . ��� ��� � ��� ��������� ������� (��� � � � (������� ��� ��� ��� � � (��G� ���� �� ���� ���� � ������� ..&��� . &��� .&��� ��� &�� ���� ���� )�,�� ����� � � � � � ��� . � � � ��� )��� ������ ��������� �� �N �,

&������ ���� ... � � � . C ..&��� �� ������ �� ������ ��� �������

..&��� � � � � ..&���� .&���

� � � � � .&��� &��� � � � � &���1

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

&��� � � � � &���� .&���

� � � � � .&��� ..&��� � � � � ..&���1

���� ����� ..&��� ����� ��� �� ������� � ���� &���� ��� � ����� ��� � ����

���� ��� ���� ��� � )�, �� ������� � ��� ������� ������� . &���� � � � � . &��

��� ���� �� ���� �� ... � � � .�

��� ���� ��� ���� ) �� � � � � ���, � � �� �� ��#����� �� ������ �� ������ � �� ��� ����� � ����� � C �� =� ����� �� )�, ��� ��������� ������) !� :� *� *� *,� ��� �� ���� �� � ��#����� ���� ��������� ������ )*� !� !,� � �������� ��� ������ �� �� ��#����� ���� � ��� ���� ��� ��������� � ��������� �� ��� ������ ��������� ������ ���� �� �� �#�� �� ������ �2

'��� �� (� (�� ��� � � *1 ����� �� �� �/.�� 0��� ��� 2��� ���������� �����) �� �� � � � � ���, ���� �����*� ��� ��������

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

)���� �� ��� ���� ������ � �� ���� ���������� ������� ���� � ���� �� �� ���������� ��� �� ���� ���� � N � N � � � N ��� C !�� ������� ��������� )�,

��

Page 19: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� 6

�� �� � ��� �� � � �� � � ��� ������ �� �#�� �� !) ��� � �� �#�� �� !)N!����� ) C !����� ��� � C !��� ��� ��,

+����, $���� � �� �� ��#����� � �� �4��� $�� ���� ���� ��������� ������) �� � � � � ���,� ��� ������ � ���� )�, �� �������� �� ������� ���� ��� �� ���) ��� � � � �

�����

���

����, C )* �� � � � � * ���� �N � �N ,� ���� ���������� ! �� ���

� � � � � ��� ���������� * �� ��� � =� ����� �� ���� � C " �� ��� ������� �� ����� 64��� $�� ���� ������ ��������� ������ ): � !� - � .� :� -� -, C)-� -� :� -� -, � �� ��� � ������ @ �� ��� �� �� ��#����� . ! . ! � 5������ 6 ���� ��� ��� ����� � � ���� �� ��� � ��

+����� �������� � ��� � �4��� $�� ����� �� ����� ���� � ��� �������������� ��� �#�� ��������� ��� ����� ���� �� ������� ��� �����& � ���� � ������������ ������� ����������� ���������� � ��� ���� Æ �� ��� &������ $������� ���� ��� �� ����� ! �� ��� ���� ���������� ��������� ��� ���� ��� ��� ��� ��� � ������� ���� ������ ����������� ���� �� �� ���� K���� � ����� ����� ���������� �� $� O� F������ ��� G� 5� O�( ������� ���� ���, � ��

) 00-,� .*I M� %�� � ��� ���� ����� * � ��� �� ��� ������ � 64���$�� ���� ����� �� �� ��#����� ��

). !".*! ."! .*!",�� )��,

F�� �)�, �� ��� ������� �� �� � ���� ���� �� �4��� $�� ���� ��� ������ �� ����� � ��� ���� ����� � �� ( �� � �) , C � ��� �)!, C �)", C�)*, C !1 ��� �� �� ���� �� ��� ���� �)�, ���� �� ��� ���� � ���� � � !� �����)��, ����� ���� �)6, C *� 5��������� ������� ������� ����� ��� ��� �� ����)-, C * ��� �)', C 6� ������� � �� � ����������� �������� �� �� ������ ��� ���� � C ' ����� � ��� � �� � ����� -. �� ��� ����� �� ������������ �)', � -� ��� ������� - )�, ��������� � '4��� ���� ���� �� �� ��������� 6� ��� ����� �� ��� � �)�, �� ������� � � � :1 ��� �) ., �� � ���������� � :� ��� ���������� ������������ �� ����� �� ����� �� ��� ���� �����)�, C ��*) �� �, �� � ��� )&�� �������� -.I-*�,

)(���� ��� ���� G� ���� ������ �� �4��� $�� ���� �� � ������� ��#�����&�� &�� � � � � �� ����� &� �� ��/����� �� &��� �� ��� �4���� � � � � .� ���� ������4��� � ����� �� )&�� &�� � � � � &����,� ��� &���� C &�� ��� ������� �������� ����� ��� ��� � ���� �������� 1 ��� ��������� �� ��� �� ����� ������� ��������� �� ��� ���� �� �4��� $��� ���& �� ��� ������ &�� &�� � � � � &���� � ���!� ������ � �4��� �� �� ���� � ��� ���� &� �� ��/����� �� &��� � . � � � !�� ��� ���� ����� � $�� ���� �� � >��� ������ � �� �� ��� ������� � ����4����� ��� � $�� ���� �� ���� � � >��� ������ ���& �� ���� �����

��� ���� �������� ����� $�� ����� ���� �� ��� � �� $�� ����� ���4��� ����� &�� &�� � � � � &���� ���� �� ������� � �� ��� ����� ����

+)&�, � +)&���, � . � � � !�� !� )�,

)>��� �� � ������� �� ��� + �� ������ ��� 8������9 � ��� 8�������� ���9 � ������ ������ ���� � ��� ����� � � ���� �� ����, ��� ��� �� ����� ����

��

Page 20: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- ����������� ��������� ����� '�!� �

'�( '�( '( '�( '�( '�( '�(

���� �� 3������� �1%��� .��� �����4

�( ��������5�( �������5( �����������5�( ���%� �5�( �����5�( �����5�( �����%�����

��

Page 21: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� '

���� �� �������� � �� � ��� ��������� �4��� $�� ����� � ���� � � *� ���������� ���� .� ��� ��� ���� ������� ���� .��� � ��� ��� � � C " ��

...� .. � . � . .� .� ..� . � 1 )�,

.. � ...� . .� .� ..� . � � . � )��,

��� ��� � � C * �� � ���� � ��� �������� ��� ��� �� � ���� � �� ��������&���� +)&���, C +)&�, � ������� &� �� ��/����� �� &���� �� ������� �

����� ��������� )�, �� ��� �#������� ���� � �4��� �� �� ����� � ����� ��������� %�� � ����� )�, �� ����� ������ �� �������� ��� ������ � ���� &������� � ��� ��� ������ � &�� ������� �� ���� ���� ����� �

���

�� ��� �4��� ��

���� ������ ��=��� * ������L�� �� ����������� �� �� �� � �������� ����� � ��� L� ����

� $�� ����� ��� $�� ����� ���� ���� � ���� ��� ������ � !6- � ��������� � :4��� ������ % ��� �#���� ������� ���� ��� ����� �#���� �������L���� =��� *)�, �� ��� ������� $�� ����� ����� ��� � =��� *)�, �� �� ��������� ����� � !6-�: C "! ���������� �� ���� ��������� ��������� =��� *)�,�� � $�� ���� ��� ����� �� =��� ")�,� �� ����� ��� ������ !: ����� ������ ������ � ��� ��� !:� �� =��� *)�,� ��� ���������� �� ���� ����������������� ���� ���� � ��� ���� ��� ����� ����1 �� ���� ����� � �� �������� �� ���� 6� ��� ���� �� =��� *)�, �� ����� �� �� ��� ����� � ������� 60�=��� *), ����� � ��������� ���� � � C :1 ������ ��� � ��� �� ���� ��� ���������� =��� �� =��� *)�, � ������� � $�� ���� ���� �� ���� � ��������������� ��� ����� ���� ��� ����� � ������ � ��� � ��� �#���� ��� ����� � �� ����� ��� ����� �� ���� �� ���� &������ $�� ����� ���� ��� ���� �������� ����� � ��� ��������� ���������� ��� =��� *)�, �������� ����� � ���4����������� �� ���� �� � ������ &��� ����� �� �� �� �����#����1 ���� �� ���������� ��� ������ � ����� ��� ��� ���� ���������� )��� �������� '6 ��� '-,�

(� � &����� ��� 3��� G��� � K � +��.��������� ����� ��� ) 006,�!".I!*:M ���� �� � ����� ��� �� �������� ��������� ����� $�� ����� �� � � .� &��� ����� �� �������� � ��� � �� �������� ,�� �� ����� � ���������� �� ������� �4��� �� � ������� � ��� � N � &����� ��� G��� ������� ������ � �������� ������� � �� ������ ,�� C .� ���� � � � � .�

,����� C ,�������� .,�� 1 )� ,

,�� C � � � � . � � � �� )��,

>�� �� �� � ���������� � ��� ���������� ���� �� �� ������ ���� ��� ����������� ,� ����� ���� ���� � ����� ���� � � � ���� � ��� ��#����� , �� �� ������ ���� � � � ����� ���� ��� C �� � )G� ����� ����� ,� �� ������ �� C ����������� �� ���� )!�,� �� �� !���, �� � ���� � ����� �� ����

,�� C .,�� C ..� . )��,

������� ,���� �� �������1 � ��

,�� C ,���� C .� )��,

��

Page 22: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

: ����������� ��������� ����� '�!� �

������� ,�� �� ������� ��� �� ���� �� ��� �������� ����������� �� ����� �,�� �� � ��#����� � �4��� ������ ���������� ����� �

�����

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

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

������� � ������ � N �

F�� (�� ��� -�� �� ��� ��� ��� ��� � ������ � ,�� � ���� �� ���� � ���

-�� C .����� ���� � . � � � �1 )��,

(�� C .�� � � � .1 )��,

(�� C (������������� � � � � �� ) �,

�� ������ �� (�� � ���� ��� ������ �� ��� -�� � ���� ��� ������ �N � G� �� ����� ����������� �� � �.� � � � � � �� � �� ���� ���� � ��� ��#������

,��� ,���� ,��� ,�

��� � � � ) ,

��� ,���� ,��� ,�

��� ,��� � � � ) ,

�� ��������� ����� $�� ����� � � C � !� "� � � � � �� ���� ��� �������������� � ��� �� �� � ��� $������ �� �� �����1 ��� ��� ��#������ ) ,� ) , ��� ������ � ������� ��� ��/��������

(�����(������ � ����(������ -�����-������ � ����-����� ) �,

� �� ��������� � �� )� ,� ���� ��� � ��� ����������� ��� ���� �������� ����� �� ��� ��������� �� ��� ����� �� ��� � )� ,� ����� ����� ,�����

� $�� ������� � ��� �� � �

-������� C (�� � . � � � �� ) ,

=� ����� �� ���� � C ! ��� � C �� ���� ). ,�� C (�� C .� �� )��,I) �,1 ����� �� ���� �������� ���������� . ��� � ��� ����� ��� � )���������� ' , ���� ��� �� ��

�� C .������� ) �,

���� .� �� ��� �4��� � )�� � � � .,� ��� ��� �� ����� �� ������

�� C ).,�

�� C ). ,�

�� C ). ! ,�

�� C ). ",�

� C ). * " ! ,�

�� C ). 6 ! * ",1

�� ���� � 8� ���� ��9 � ��� ����� ����������� �� �� �������� 5������ '"����� ���� ��� &�����IG��� � ����� ��� �� �������� ������ ��

*������� ��� ������ G� ���� ������� ��� ���� � ����� �4��� �� ������ ����� � ������� �� �� ��� ���� ���� ���� � ������ � ���� ��� ���� �� ������� ������� � ��� ��� ��� � ��� ���/���� %�� � ����� ���� �� ���������� �������� �� ����� �� ���� �� ������� )��� � � � � ��, ���� ���������� �� ������ ����� ����� . � �� � �� � �� �� + ������ O� $�� ����� ��� $������� ��� � �� ���� ���� �� �� �

(������� � ����� �� ������ ������� ���� �� ���� . � �� � . ����� �� �� ���� � ������ ��� �� ����� ���� �� ��� ����� �� ��� $�� ���������� �������� �� � ��� ����� �� � ����; Q��1 �� ���� ��� ����� ������� ��

Page 23: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� 0

���� �� �� �� ��� ���� �� �� ��-� ��� $��� �� ���� ��� ��#����� � ���������� �� � �������� ���� "4����� ������ ��� ��� ��

...� .. � � � � � ..0� . 0� . :� � � � � . � . .� .!.� .! � � � � � .0 � .0.� 0.� 0 � � � � � 0..�

���� ���� ��������� ������ � ������ � �� . �� �� 0 ��� ���� ���� ���� ��0 �� .� �� ��� ������� �� �� ������� $��� �� ���� ��� ������ � ���� ��������� ��� .� ������ ���� 8��� �����9 �� 0 �� .2

...� .. � � � � � ..0� . 0� . .� � � � � . '� . :� .!:� .!0� � � � � .00� .0.� 0.� 0 � � � � � 0..�

�� ���� ����� ��� ����� ���� ������� �� ���� � �� ��������� �� ��� ����4���� � ������� ���)�,� ��� ����� ���� � . ���� ������� �� ������ �����4��� � � ������ ����� ����� � ����2 G� ������� .� ��H���� �������� � ����������� � ������ ���� �������� ��� � ��� ������ � � � � ��

�� ����� � ��� �J����� $�� ���� �� ��� �����4���� ������ ��� �� �4����� �� � ���������� � ��� ����������� �������� � ������� ���� ���� �������� �����4���� �����

� C�

�����

�����

� � � �

� � � �

���

���

����

�C �������� � � ����� N � � �N ���� N �� ) �,

���� ��� �J�����4$�� �#���� ���

��)�, C������

�����

� � � �

� � � �

���

���

����

�C �������� � � ����� N � � �N ���� N ��� ) �,

/��� �� )�, ���� ���� �� ��� ������ ���� � ����� ������� F��

%� C������

�����

� � � �

� � � �

����

�� /� C

������

�����

� � � �

� � � �

����

�� ) �,

�� ����%� C ��%��� N �� ��� /� C ��/��� N �� � ) �,

��� � � ���������� ��� ��� ��� ��� �� ��� ���� � �� ����� �� ���������2

�� C

��� � � /��� �� ����1

�� � � �� � � /��� �� ����)��,

)>�� �� �� �������� ��� ���������� � ��� �4��� �� )����� � � � � ��� ��, ���)����� � � � � ��� ��, �� ���� �� ��� � ����������� ���� )�, ��� ��� ������4����� � �����4���� �������� �� 5#� *� I)�,� R����� ��� ��� ��������� ���)��� � � � � ��, ��� ������ � �� � � � �� � ��� ��� �� � ���� �����, $���� ������� ���� �� ����

�� C

��� � � ���� N ���� N � � � �� ����1

�� � � �� � � ���� N ���� N � � � �� ����)�,

(����� �� � � )��, ��� ��� ������ �� )�, �� ����� � ��� ���� ���� � � ����������� �� ���� �� $�� ����� ����� � ����� �� ������ C �� C � � � C "��� ���� ��

�) .. .! . !,�

�C ) !! .! . .,� ��� � �� ��

�) !! .! . .,�

�C

) .. .! . !,�� 5������ ': ����� )��, ��� )�,� ��� ��������� ���� � ��� ��

Page 24: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!. ����������� ��������� ����� '�!� �

���� �� � �� ��� ���� � ����� 3��� � ���� �� ����� ��#������ 8$�� ������9� ������ ����� � �������� ���� ����� �� � �� $�� ����� )��� ������� '0,�

G� ��� �� ��� ������� ���� $�� ��#������ ��� ��� �� ����� �L��� + ��4����� O ��� F2

� ������ + )*����� ��-� ��� �"��#���" $��� ���������,� ���� � ������������ � �4��� �� )����� � � � � ��, ���� ���� . � �� � �� � . � � � �� ���������� � ��� ��������� �� � �� ���� ����� �� ��������� �� ��� � ���� �������)#�� � � � � #�, �� ����� ��� ������� �� �� + ������ F� ������� ���� �� ��� ���������� )'���� � � � � '�,� G� ������ ���� ���� ���� �� �� � !�

+�� K������ �L��M &�� �� � .� #� � �� ��� '� � � � . � � � �1 � �� ��� #� � ��

+�� K������M ����� ��� �4��� � )����� � � � � ��� ��,�

+�� K(����� ��M &�� � � #� ��� #� � .� )+� �� + ������ F� � ��� ��� �������������� ���������1 � � ������ �� ��� ���� ���� ��� ���� ����������,

+�� K(����� ��������� ��M �������� � � C �1 �������� ��� �� � �� N '� �

+�� KR�J���;M � �� C . � �� C �� � � ��� '� � �'� � #� � #���� ���#��� � � N � )(�������� � ��� ���� ������ ��������, R���� �� >!�

+ ���� � � ������ �������� ��� ���� � �������� )��� ������� '',�

),��!������ +� ���������� ��� ���������� ����� �L����� � + ������ >���������� �� Q� A��� ��� =� R����� K � #��������� �� ) 00",� "!*I"*.M� ��������� ���� �� ��� ���/��� � $�� ����� ��� ��� ��� ���������� &������ ������ � ���� � � ������ ��� �� ���� �� ����� � � ��� 8������� ���������9���� � � ������� � ����� 0 ���� ���� � � �� �� 0 ��� � �� ��� � ���� �������� � � �� � �� �� 0� =� ����� �� ��� '4���� ���� ��� "" ���� ������������������� �� ��� � ��� ����� �� ��� � ����� "" �������2

)�,

D����� ���� � �� ��� ��� ��� �� �� �� �� ����� ��� ���� � �� �� ������ ��� ��� ��� ������ �� �� �� �� ����� ��� ������ � ����� � ��� ����������� �� ���� �����

� ��� ����� ���� �������� � ��������� ����������� ����� ��� ������� �������� �� �#���� ��� �� �����4���� ������� =� ����� �� � ���� ���

��� " ! * ! ������� ��������� ����������� �� *4��� �� )��� ��� ��� ��,���� ���� . � �� � "� . � �� � !� . � �� � *� ��� . � �� � !1 ��� �� �� � ���� ��� ����� � ����� �� ����� �� ��� ��� ����� G��� ��� � ������ � A���

��

Page 25: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� !

��� R����� �� ��� ��� �� ���� � ����� �� �� ����� ��� �������� �� ��� ������� �� ��� �J����� $�� ���� �� ������ )"� !� *� !,�

� ������ - )*����� ��-� ��� ������ � ���������,� $���� � ���� ���������� �� ) � � � � � �, ���� ������ �� �������� ���� � ������ ������ � ������4��� �� )��� � � � � ��, ���� ���� �� � �� ������� 1 �� � ����� � )� )������� C ����� ���� 1 �� � ���� �� ��� ����� ��������, 5���� � ��� ��� ��������� ������� ��� ����� ��� ��� ����� =���� ������� )#�� #�� � � � � #�, ��� ������� ����� � + ������ F �� ���� ������� ���� ��������� ���� � �������)��� ��� � � � � ��, ��� )��� ��� � � � � ��,� ����� ������� � ���� � ����� ��� �� �� ���8����� �����9 ��� ����� ���� �������� � ����� � ��� ����� ���������� ���� ��� ���1 �� ������ �� ��� ������ ���� ��� �� �� ��� ���������

+� ���� ��� ��� ) �� �� � � � � �, ������ ��� ���� �� � ���2 � 1 ��� ����� ���� � C .1 �������� � �� ��� ������ )��� ���, ��� � � 1� + �� � �� ��� ������ ��� � ��� ���� ���� � G��� ��� � ������ ������� �� ������ ������ C ) ��� �� C 1 ������� 1 ��� ) �� ����������� ��� ��� � ��� ���� ��� ������� � ����� �� ��� ���� �� )�, ��� ��� ������� ��������

2

4

6 8

<

5

1

������ �� ���� � ���� ) �� � � � � �, C )!� .� � .� .� .� *� ", ��� �� C '� �� C !��� C -� �� C "� �� C 6� ��� � C * �� ��� ��������� � ���� A �� ���� �����

-�� K������ �L��M &�� �� � . ��� #� � � � � � � �� ������ ������ ��� ������ ������� ����� ��� � ����� ������� &�� #� � .� �� � �� �� � .� �� � ����� ��� � .� ������ ������� � ���� ���� ��� ����� �����

-�� K������M ����� ��� ������� ������ �� )��� � � � � ��,�

-�� K(����� 1�M &�� ) � ��� 1 � #�� )D�� 1 �� ��� �������� ������ ���� � ��������, + �� ��� #� � ) )������ ���������� � ����� �� 1�� ����,�

-�� K(���� ���M �������� ��� � ������ � 1 C .� B������� �� �� A- � �� C �

-�� K����� 1�� ��� ����M &�� �� � � ����� � � �C .� ��� ) � ��� �� � 1 � ����� � )� �� � �� ��� � 1 )������ ������� 1�� ��� ��� �� ��� ���� � 1�� ��� ����,� $� �� A'�

-�� K@� ��� 1�� ��� ����M &�� �� � .� ����� � � �C .� ��� ) � ����� �� � )��� � 1 )������ ������� 1�� ��� ��� �� ��� ����,�

-�� KO��� 1 ��������M )+� ���� ����� �� ���� ���� 1 �� �������, &�� #� � # ����� # �� � ��� R���� �� A!�

��� ���� �� ��������� �� � �� ������ ���� � ������ �� ����� �� ��� )�,��� ��� �� ��������� ��� ������� ��������� �� ����� ��� ���� ���� ��������� �� /��� ��� ���� ������

��

Page 26: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!! ����������� ��������� ����� '�!� �

),��! ������� ��.������� + ���� ��� � ��H���� ��� �� ������� � �4��� �� ��4�� ������ �� � �� ������ �2 G� ��� ������� ��� ����� �� � ����� ��� ������� ���� ���� ��� � ���� ����� � �������� ������� ���� ������� �� ��� �4��� �)��� ��� � � � � ����, �� ������ ��� )��� � � � � ����� ��, �� ������� �� ������������ ����� �� �� ��� ����� =� ����� �� =��� 6 ����� ��� � 64��� ������ ����� �������� �� � ���� � 6 ����������� ���� �� � ������ ��� �� ������ � ����� "!����� ����� ���� ��� � ���� ���� ��������� �� ���� � ��� �������� � &�������!�"�*�! ��� "�!�!� ��� �� ��� �� ���� �� ��� �� �� �����

���� ��

�� 2� �6� ����� 7%��� � ������

�����

�����

�����

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

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

�����

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

�� ����

� ����

���

���

�����

�����

�����

�����

�����

�����

�����

� ������ , )$���� &�� ��� ��� ���������,� ���� � ������ ������ � �4��� �� )��� � � � � ��, ���� ���� . � �� � � � � � � �� ������� ���� � ������ �������� # �� ���� �� ���� &"�

,�� K������ �L��M &�� �� � . � �� � � � . ��� � � �

,�� K������M ����� ��� �4��� � )����� � � � � ����,� �������� � � C ���

,�� K+�������M &�� �� � #)����� � � � � ����,� � � � N � ��� ���� �� &!�

5��� ������� # ���� ����� + ������ & �� �� ��������� �� � ��� � ��� ����4� ������ ���� ���� ���� ����������� � � ������ ����� ����������� ��� ��� ��� �� =� ����� �� ��� ���� � C ! ��� � C 6 � ������� �� =��� 6��������� �� ��� ����� ��� �

..... ... .. . .. . . . 1 )��,

��� ��� ��� �� ������ � ��� ������� ��#�����

.. .! !!." "!"".* *!*"** � � � )� ,

��� � �� ��������� ��� � � � C ! ��� ������ �� &��� ��� �� �� ������ ��� �� �4�� �� ���.� � �� � ������� D� $� �� %��/� ������ ��� ����� ����� ������ � �� ������������ $��������3 ) 0*-,� *- I*-'�

5������ !�"�*�!I!" ����� ���� ����� � �?����

��� �������� # ���� ����#���� ��������� ������ � ���� ������ ��� �� � � �� � ����� �������� ������� �� �� ������ � �������� �� G� �� ������� ���� ����� � # ���� ������� �� ��� ���� ���� �

��

Page 27: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� !"

�!"� �

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

+ 4 � 1 4 �� 7 �+ 4 �� + �1 4 � �+ 4 7 �1 4 +8 4 � 9 4 8 �8 4 �� �� �9 4 �� 7 �8 4 �� + �9 4 �7 4 � �� 4 + �7 4 � �� 4 + �7 4 + +� 4 �� �7* 4 � �� 4 � �* 4 �� + �� 4 � �* 4 �� � +� 4 +� 4 � �� 4 +� 8 �� 4 + �� 4 �� � �� 4 �� � +� 4 �� ��

�� �&���� =� > �? �� =� > �� �? ���& ���� ��� *�(#&����( �� @ �� @ 2 �� �� @ ��� @ 2���� @ 2���� *������!� ��"�(� �. �""����&�( !�(�� �* �� � : 2<A ��!� '��& ��'�(���" '# 1. ����&B�)� ��� ����� �� �2354�) 35573A;.

��� ��� �������� ���� ����� ���� � �� � ���� ������ ��� # �� ���� ����4 ���� �������

#)��� � � � � ��, C

�����

�� � )��� ��� � � � � ��, C ).� .� � � � � .,1

.� � )��� ��� � � � � ��, C ) � .� � � � � .,1

) ��� N ��� N � � �N ���, ����� ���������

)��,

>�� ��� ��������� ) �� � � � � �, ���� �� ���� ����

�� � ����� � � � � � ��� � )��,

�� � �������� �� ������ ���� � �� �� ��� ����� ��������� � ����� 5#� "�!�!I)�,� ��� ����� � ���� �� ������ � �� 2)�� � ,��� ��� ������ �� � �� ���� ��� ��� �� ����� �� � � �� � ��� �� �� ���L��� K���� ����������� �������� �� � ��������� ���� � G� �� O���� � 4���2 #����* &��� )��5���� )!,� ) :0',� '!I :*�M

=� ����� �� ������� � C !� G� ��� ������� ����� �4��� �� ���� � ������� � ��� ��� �������2

� ������ � )���� �#����� ��# &�� ���������,� ���� � ������ ������ � �4��� ������� �� ����� ����� � ������ �H��� 3 K(��� M � ��� ������ �H���� 3 ��� �K(��� !M� �� ���� �� ��� � �

��� K������ �L��M &�� )��� ��� � � � � ����, � ) � .� � � � � ., ��� � � .� � � 3� ��(��� !� � �� ��� 4� � ��� 5 � 3N ��

��� K������M ����� ��� �4��� � )����� � � � � ��� ����� � � � � ����� ��,�

��� K���� � ����M � �� �C .� ��� � � .1 �������� ��� � � � N � ��� �� �� +-� � C �� � )G� ���� /��� ���� � ����������� L����,

��� K&����M &�� � � )� � , ��� � ��� � � )� � , ��� �� �� (��� ! � �� ���4 � )4� , ��� � ��� 5 � )5� , ��� ��

��� K(������ � ��� ����M &�� �� � �� � �� K(��� M � �� � �� � �� � �� � ��K(��� !M� R���� �� +!�

��� K=������M ����� ).� � � � � ., ��� ���������

+�������� �H��� �������� 3 ��� ������ � � � ���� ������ � ����� � � ��������� �������� �� ������ � �� �� ��������1 � ����� �� ����� ��H����������� � )3� �, ��� � ��� ���� � C "!� ��� ��� � ��� � ���� ��� ��� ����

��

Page 28: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!* ����������� ��������� ����� '�!� �

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

B� ��� ����������� � �� %��/� ��� ��� �� )��,� ��� � ������� � ���� ���� �� ����� �� ��� ����� � ����� �� ��� + ���� � ������ ���� ���� ���� ��� ��� � ���� ����� ������ �� ������� "�!�!I! � B� ���� ������������ ���������� �� �� ��� � ����������� � �� ���� �� �� ����� � � ���� �� ��� ����� ���� � $�� �4�� ������

� ������ / )(� �� �� �� ���.� � �� ���������,� &������ #), �� � ������������ �� ������ ��� ���������� ������ � �� �4�� �� %��/� ��� � � ����� ������������ ���� � L���� ���� �� �� ������� ������� �� ���� � ������ �� � ���� ��������� ���� ������� � ��� � � ����� ����� ������� ���� � � !� �� ������������� ������ ����� �� �� 6� ��� �1 ����� � � ���� � ������ � �� L���

/�� KB������M B����� �� $� �� R" � � �C . ��� � � ��

/�� K������ # �M &�� 6 � #),�

/�� K(���� �����M � 6 C � ��� � � �N 1 �������� ��� � � .�

/�� K&��� ���;M � � C � ��� � �C .� �� ���� �� R!�

/�� K+�/��� ��M &�� � � )�N 6, ���� ��� ���� �� R �

=� ����� �� �� � C " ��� � C !� � #), ������� ��� ������� 04��� �

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

���� + ������ R �� ������ ��� � ����� ������� !'4��� � �� ���� R 2

6 C .. .! !!.. .! !!.. .! !! .. � � �

� C .. .. .... !"*.. .... .. .. .. � � �

� C ... . .!!!. !..!.! !! ! ... � � �

��� ��� ���� + ������ R ���� ����� � �� ���������� ��� ���������� )���������� 0",� +�� ��� ��� � ��� ���� � ������� ����� ������ ��� ��������L� �� �� ���� ��� �� )��� ������� 06,�

� ������ & )/����� �� �� �� �� ���.� � �� ���������,� &������ #), ����), �� ��������� ���� ���� �� ������ ��� ���������� ������ � �4�� �� %��/���� �� � ����� �� ���� ������� ������� �� ��������� ���� � L���� )��� ������ �� ����� �� �������� � ��� ���� ���� �� �������� �� ����������� ���������������� �� �� ������� ���� �� ��� �� ��H���� ���� � ������, ���� � �������� � ���� � �������� ���� ������� � ��� � � ����� ���� �� ��������� ��� ����������� �� �� 6� �� ��� 6�� ��� ��1 ����� �� � ��� �� ���� � ������ � �� ��

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

. � � � � ��� ���)�� � �� �� N �, C !� )��,

��� ���� ������ �� ���� � � C ���� � �� ��� ��� � C ! ���� � �� �����

&�� K3����� � ������ # �M � � �C � � � � �� ��� 6 � #),�

&�� K(���� �������M � � �C 6� ��� � � 6 ��� � � � B������� ��� � � �N �

&�� KB����� �� # �M B����� ��� ����� �� �� � ��

��

Page 29: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� !6

&�� K������ ��M &�� 6� � �),�

&�� K(���� �������M � �� �C 6�� ��� �� � 6� ��� �� � � B������� ��� �� � ��N �

&�� K3����� � �/��� ��M � �� C � ��� �� � � ��� ����� � � � � �� � �� �� ��@*� � �� C � ��� �� � � ��� �� C �� �� �� @"�

&�� KB����� �� ��M B����� ��� ����� �� �� � ��� R���� �� @" � �� C ���� �� � �1 �������� ���� �� @ �

��� ����� ���� � + ������ @ �� �� ������ �� #), ��� �), � ������ �� ������������ ��/�������� ���� ����� ��#����� �������� � ����������� ��� � � � ��=� ����� �� ���� #), ��� �), ������ ��� 04��� � )��,� �� ���� � C ��� ���

� �� ���� @!2 ! " ! ! !" ! ! !" ! ! !" ! ! ! � � �� �� ���� @"2 .... .! !! ... .! !!... . ! !!... .! !!... � � �� �� ���� �� ������������������������������������������������ � � �0� �� ���� � � �������� �������� �������� �������� �������� � � � � 1

�� ��� : 4��� � ������� �� ����� @" ���� �� .�..�.� � � � � � !�!� .�..�� � � ���� ���� � C ! � + ������ R ��� ��������� �� +����� F���� K�,,,

�����'��1 ) 0'.,� !.*I !.0M1 + ������ @ ��� ��� ��������� ���� ��� ����!6 ���� ��� K(� E� O����� � �� 5�L���� ��� A� $� 3������� �,,, ����� 2%��� ) 00-,� *'!I *':M� %� ����� ���� �������� ������� ���� ���� � ���������� � C ! ����� �� )� ,� �� ��� ��� � �� �� ���������� ��� � � ������������������� ���� �� ������� � �� %��/� ��� � � ����� �� � ��� ������ � � !��� � � !� ����� �� � *) �� �, ���� � ������������ � ���� ����� � �������)&�� ������� 0-�, =�������� �� ��� ���� ��� ���� � C !� ���� �����������8RW@ ������9 ��� ��� ������ ���� ��� ��� ������ ��� �� �������� ����� ���� � ������� � �� �� ����� *)� �� �, ���� � ��������� �� �4��� �������(������ �� ����� ��� �4��� ������ 7� ��� �������� � 7 �� ��� ��� � ��� � �� ���������� �� *)� �� �, ������ )&�� �������� 0'I00�, D� ���� ��� � � ������� %��/� ��� �� �� ������ � ����� �� ���� ��� ���� �������

B� ���� ����������� � �� %��/� ��� �� �� ����� �� ��� ����� � ����������� ����� �� �� � ���� ��������� �� �� ���� �� ����� ������ ���������� (����� 0� &������ 8 C (7 �� ��� ������������� � ��� ������1 �� ��� ����( �� � ���0" � 8 ��� 7 �� � �Æ"� + ���� � ��Æ� � 8 �� �� �� ������ � ��� ����� �� �������� ��� ��� ���� ��� ����� � 8� ���� 7 �� � ���� ��Æ� � (7� ��� �� � � ( �C � ��� 7 �C ��

&�3����� 4� # ������ �� ���� �* �� �� �����!�� ��� 6��%�����!������7 �������� ��� �* ��� !��!�� ��Æ%���

=� ����� �� . . �� ��� ����� ������� �� �� ����� ���� . 1 ��� . .! ������� )G� ������ ���� ������ �� �������� � ������ ������� � ���� ����� ��� � ���� � ����� � ������� F����������� � ��������� ��� �� ��� ���� ��� �� ������ ������� �� �� ���� ( � 7 ��� ��� ���� ( �� ��� ���� 7 ����( �� ������������ � ��� ���� 7� �� ������ �� �� � ���� ���� ( � (7� ���( � (7 � ��� �� � � 7 �C ��,

��

Page 30: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!- ����������� ��������� ����� '�!� �

3��� ������ ���� ���� ���� �� �� *����� ���� � ������� ���� ������������ �� R� (� F����� K����� #���� $���� ��� �� ) 06*,� !.!I! 6M1F����� �� �� ���� 8������� ��#�������9 ��� ���� � ��� 8����9 �� /�������������� � ��� ��������� �����L����� ������ �� ������� . � G� �� �������� �������� �� ��� ������ �� F����� ��� ���� � �� ���� ����� ��� ���� 9�� ������ ������ ���� �� �����

&���� � ��� ���� �������� �������� � ���� ������ ��� ������ ��(���� =��� ��� F����� �� �� �������� ���� �� ���� ����� K#����� �* $����� ) 06:,� : I06M� ��� ����� ��� � ����� ���� ��� ����� ��� �2

%������ 4� # �����!�� ������ ���� �� ���� ���� ��� ��� ��� ���*�� �� !�����

)��� ��� �� ����� � �� � � � �� �� �� � � � ����� �� � � � ������� � � � � ���� � � � �����,

+����, &������ 8 C (7 �� ��� ����� ������� ( �C � ��� 8 � 7 �C �1 ��� �������8 �� � �� ��� ���� ��� ��� �� ���� 7(� ���� ��� ���������� 7 � 8 � 7( ��� ����� 8 C 7: � ���� ����� : � (� ������� � 8 �� � �� ��� ���� ��� ��� ������ :7� �� ���� : � ( � (7 � :7� %�� ���� �� �������� �� ������� ( ��� :���� ��� ���� ������

F�� ;�)�, �� ��� ����� � �4�� ����� � ����� �� 5��� ����� �� � � � ���������� ���� ��� ��� �� ������ ��� �� ' �������� ������ � ���� ������ ' � ������������� �� ����� � ��� ���� � ����� '� =� ����� �� �� . .. . ����� � �� .. .. ��� .. .. �� ��� �� �������� ��� ��� ��� ��� � ��� ����������� �. .� ..� .. � �� ��� ���� .. � ������ �� ���� �����

� �

';�)', C ��� � � ��� � � )��,

���� ��� � � �#������� ��� �� �� ��� � ;�)�, ����� ������� *�6�"I!:)�,� ����� ������

;�)�, C

�� �

<)',���� )��,

@���� ��� 0'.�� >�� � =�������� ��� E���� O������ ��������� �������� � ���� � ��� �� ������� � � ��� �4�� ����� � ����� � � ������ ��������� ��� K8������ $���� �� ) 0':,� !.'I! .M� %��� �� �� ���� ����������� ���� � ������� �� ���� �� ������� ��� �#�"��� �� � � ������������� 9� ���� � ��� ��� � �������� � ��� ������� ����� 999 � � � � =� ����� ����� .4��������� � !" �� !" !" !" � �� ����� � �9� C �� ��� �4��������� ��9����9�� ���� 9� �� ��� ���� � 9 ����� ����� �� ���� ��

&�3����� 5� # ������ �� ������� �* �� �� � �����!�� !��9% �* � !�����

%������ 5� # ������ �* ������ � � . �� !��!���� �* ��� ���� �* �� �� ��� �/�%������� �* � !���� ������ 9 �* ������ � � �� ��� !���� ������ �� ���"���������������

+����, &�� ������� .6�

��

Page 31: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� !'

������ X ������� �� �������� ���� ���� �� � ���4��4��� ������������ ������������ � ����� � � ��� ������� � ����� �� ��� � ����� � �������������� � � ��� �4�� ����� �� ��������� ����

� ������ 6 )+��� ��� ������� ���� ���������,� ���� � ������ ������� �4�� �4��� �� )��� � � � � ��, ���� ���� ��� ����� �� � � � �� �� ������� �� � ����������� ��� ����� � ���� ���� �� � � � �� �� ��� �4��������� � ��� ���� �� � � � �� �

6�� K������ �L��M &�� �� � � � �� � � � � � �� � .� ��� � � �

6�� K������M ����� )��� � � � � ��, ���� ����� ��

6�� K3���� �� ��������M &�� � � �� ���� � �� C � � � ������� � ���� ������ �� � �� �

6�� K+�� ����M �������� � � C .� B������� ��� �� � �� N � )D�� �� � � � �� ������� �� ������� .6)�,�,

6�� KO��� �4����������M =� � � � N � � � � � � )�� ���� ���, ��� �� � ���� �R���� �� =!�

=� ����� �� + ������ = ������ "! ����� ������� ���� � C " ��� � C *2

.�... ..

�..!!

�.

�. !!

�.! !

� � !

� !

... �

.. !�

. �. . !

�.!�.! .!!

�. !

� !!

...!�

..!�. . .!

�. !

�. .!

�. .!!

� !

� !!!

.. �

. ..! �

. �

. . ! �

.! �

.!!!�

!!�

!�

!!!

)�,

)��� ������ �������� V�� �� ��� ���� ������ .� ... � ...!� .. � .. � � � � � !�,

������ X ��� ���� ��� ���� � ������ �� ������ ������� ����� =" ��� =*������� � ��� ��� ��� ��� �4�� ���� � ����� � � ���� ������� ��� ������������� �� � � � ��� D����� ���� ��� �� �������� �� . �� � ��� � ������������� �� ����� � ��� )�� ,4�� ����� ��� �������� �������� �� � � � �

+ ������ = �� #���� ������� � ��� ���� ���� �� ���� �� �� ���� �� %��/���� ��; >�� ��� ����� ��� ����� ���2 � �� ������ ��� ������ ��� � � � � �� ������ =! ������� � �� � ������ � �� ��� ��#����� � � ���� ������ ��� � ��%��/� ��� �? =� ����� �� �� ��� ���� � C " ��� � C *� ��� � ����� : �������� ������2

. ... ...! .. .. ! ..! ..!! . . .! . . !

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

)G� ���� ��� ����� .. � ..!� . � � � � � !! � )�, ������� ���� ����� ������� ������ *�, ��� ������ ���� ���� ���� � ���� ������ ������ �� ��� ����� ������� .:� D����� ���� ��� ��� � ��� ��� ����� ������ �� )��,�

���� �� � ����� �� ����� ��� ������� � ���� ������� �� ����� � �#����4 ��� �� ��� 8���������9 � � �� %��/� ��� � ������������ ���� ��� � � ���� �� ���� � ��� ����������� ��� ��� ����� �� O� >� O���� �� ����� #����$���� ��� �� ) 0"*,� :60I:-*2 O������ ������ ��� � � � C " ��� � C *��� !!!! !!!.!! � � � ....� ��� ����� ���� ����� � )�,� �� ���� =����������� O������ ��������� + ������ = � ���� �� �������� ��� � ������ � �

��

Page 32: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!: ����������� ��������� ����� '�!� �

���� � ��� �� ������� O������ ��#�����1 ��� ��� ���� ���������� ������� ����� ������ ��� ������ ������ ��� ��� ������� ���� ���� ���� ���� ����R������ &������ ��� G��� ����� ��� � ���� ��� ���� � ��� ������ ����K � #��������� �� ) 00!,� * *I*".M� ��� ������� ��� �� � ���� ��� ���� ������� ������� .'� ���� ��, ��� ������ �� �� � �� � �� ����� =" ��� =6 �� ���������� � ��)�� ,����, ��� ���� ������ ���� �� ������ � �� %��/� ��� � ��� )�, �� *)��,�

�#�������

�� :�� ; 3������ �� � �������� ��� �%� ���� '��� � ��( �� ���� � � �� � �� � ��#������ � ��� � ��� ���� � ��� �� �� ��� �������� ' �� �� ���� � � �� �(�� :�� ; "��� �� ��� ��������� �%� ��� #������ �� ������� , �� � < �� ��� �� < �� � � � �= ����� K ��

������

����

����

����

����

����

���

���

���M < ��������

� �� :� ; >� ���� ����� ��� ������� , ������ ���� ,8=

� � :�� ; ?� ��� �� ���� �� �� ������ � �� ��� � � ������ ���� � � ��@�#��� ������� , � ���� �� #����� ��� �%� ���� �� ��� ������ ����� �������� ����'�� � �� ��� � �( ��� &������� ���� '�� � �(�

� � :� ; �������� � � �� ��� A���� B ���� ��������C '������� 8�*�8!�8( ������� ���� �� ����� � ������� �� ���%��D���� ����� ��#��� �:'�� ����(�; �� ��� ��������� �:'���� ��(�; �� �������� "��� �� � �� ��� � ��������� ��� ������� �������� ����= :����� @�D�� ������� ,�;

�� :�� ; E�#� '�(� ��� ���� ��� �� �� .��� ������ ���

�� :� ; B��� ��'�( ���� ��� .��� ������ �� �� � ���� ���� �� ��#���� ��� �*������ "��� � �� �� � �� .���%���� �� � �� �� ��� � ���� � ����� ���� ��� *� '�� � �� � ��� ��� � � ��(� � +*� '�� ������� �� � ����(=

� :�� ; "���F� �� ���� ��� � � � ��� �� ��� �%��� ������� � �#�� ������� ���������� �� ���� �� ��� ����=

�� :� ; "��� �#� �� �� ���� B��� ��� ���� ��#��� ��� ������� ���� � 00��=

� ��� :� ; B��� � ������ ��� �� �� ��� ���� � ���� � ����� �� � �� �� ���� ����� �� '�( ���#�� � '�( �������� �� ��� ������� ���� �� �� ���#��� � ������������� B� �������� �� < 8 ��� �� < ��

��� : ; '>� G� E ������ �1*7�( /�� �� �������� ����� � ��� ������� ���� � 00���� �� ���� �� ����� � � H ��� ��� ��� ����� ���� >� ���� ����� ��� ��� � 00����I ��� ���� � � ��������� �#�� ��� ���������=

� ��� :� ; /�� ������������ � � ��� ��� ��I ���� � �����#� �������� ���� � � � ��B� �������� ��� �������� � 8 ��� ����� ���� ���� �+� ���� ��� +�� ��� 8� � �������� ��� ������ ���� ��������� ���������� � ��� � ����� � ��� ����� ��� � �������� ����� �� ��� � ����� ��� �����#�� '� �( ��� �������%��0�� � ������#����

�( J����� � ������ �������� � �������� ��� �������� � �� ������������ ���������� �� � ��I ������ ����� � �������� ���� �� �

�( ���������� ������ � ������ �������� ���� ���������� ��� �������� ����������� �� ����� � ������� ���� ��� ����� ��� �������� � ��� ������� ���'�� � ��('�� � ��( '���� � ��( ��� �� ��#� �� < �� �� < �� B� �������� ���������� ��� � �� �� ����������� ���� ���� ����� �� ��� ������� �� < 8��� < �� �� < �� �� < �� ��� ���� � < +�

Page 33: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� !0

��� :� ; ����� ��� ��� ���#� � �������� �� �� ��� ��� � �������� ������ <

��

���������

��� �� �� ��� ������� �� �� �� ����� #�������

�� :� ; J����� �� �������� � �������� ��� ������� �� �� � � ���� � � � � ���� � �� � �� �� � � � � � �� ���������� ����� B� �������� �� �� < �� < � < ��� � �������� �� �� � ����#��� #���� �� �� ��� ��� �� ��� ���

� �� :� ; J����� � �������� �������� � �������� ��� ������� � ��� ���#� � �������� �� ������� � ��� ���� ������ �� �� �� #������ �� ���������� ���� �� ������ � �������� � ��H����� ������� �� �� ���������� �� ��� �#������ ���� B� ���������� ��� ��� �� ��� ��� � �� �� �������� ���� ���� �� < �� < � < ��

� ��� :� ; ������ �������� �#� ��� ���� �������� ��� ������ #���� '��� � ��(�� ���������� ����� ��� �� ��� � ���� � �������� �� ���� ���� � ������������ � ����#� #����� �� �� � ����� ���� ���#��� ���� ������ ������������������� ��� ���� ������� �� � ������ ������������� �� ��� ������� � � ��I ��������4 � ���� ����� ��� �� ���� ��4�� �4�� �4�� �4�� � �4�� �4��� ��� �������� � �����&��� ��� � ��� &���� ����� �����' 4�( < � �� � � � � ��� � � � � �� � �%� ������� '�� �� �( �� ����������� ��

��� '�4�( < �4�� ��� '�4�( < �4�� ��� '�4�( < +4�� ��� '+4�( < K�

����� �4� �� � ������ ������ ���5 ��� ���� ��� &���� �� ��#� ��� �#������ #�� ���

��� :� ; ����%���� ���� ��� ����� ��� �������� ��� :,� L���� ��� ����

����� ������ ���� ����� ��� ���� � '�97+(� 79+!799; ��� .��� ������ �� �� ����������� � ������� ��� 8%��� � ����� �� � 8� 8 �� �4

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

'/�� ������� � � �� � A���� �� ��C �� ��� ���� ��� ����� ��� ��� �� ��� �� �������M6 �� �� �� ���� ���� ������ ��������� ��&������ ���� �� � ������( ��� ��������������� ��� *%��� � ����� �� �� �������� �� �� 1�1 �� � � ���� ��� �� ������������� ���� �� �#� ����� � ��� ����� � ���� ��� ��� �����

� � � :� ; /�� ��� ������ � � #��� � < '��� � ��(� ����� ��� ������ �����&��� � �� � �� � �� ��&��� � ��

�'�( <��

���

���'�� ��� � ��(5

��� ��� ��� �������� ������� �� � � #���� � ��� � ��

�'�� �( < �'�� �(� ����� �� � < )'�� � ��( ����� � '�� � ��( ����,

'/��� �� ��� ����� � � ���� � ����� ������ � ����� � � � �� �� ��6 �� ��������� �� �� �� '�� � ��( �� ��� �����(

I �������� #��� ��� �� < 8 �� � � � �� ��� � ������ #��� ��� ��� �� < ��B��� � ������ ��%�%�� ���������� ������� I �������� #���� � < '��� � ��(��� ������ #���� �� < '���� � �

���(� ���� ��� ������� ���� �'�( < �'��( ���

�'�� �( < �'�� ��(�

Page 34: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

". ����������� ��������� ����� '�!� �

��� :� ; ' �� ��������!( -�� �'�( < �� N ��� N �� ���( O�� �� � ��� ��������� �� ���� ����� � �#�� ���

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

� ���� #�� ��� �7* ���������

'��N���N����N���

�(�'�( �� 8 < ��N���N����N���

�N����N���

�N����

�� � � ��� ��� ��� �� � 8� ����� �� �� ���� � ���� � � �� � 8 ��� '�� N �� N�� N �� N �� N �� N �� N ��( �� 8 < ��

�( ����� � � ��� � �7* �*%��� � ����� ���� ��H�� ��� ��� ���� �� �� ����� �����H����� ��� �������� '� � � ���� &��� ���#���� �� $������ ��� @�����:�������� ��� ���� �� '�9*�(� *�+!*�*;� �� ����������� ��I ��(

��� :� ; /�� �*%��� ������ �� ��� ���#� � ������� �� �� ��� � �������� 1���� � ���������� ������� ����������� ����� � �� ������ �� ��� �� � �� ������� �� ����5 � ��������� �������� ���� �� ������� '� � �� ���������� ��������(�� ��� ����� ���� ��� ����#�� ��������� J�#��� �� �������� ���� ������ &��� ���������� ����� � � ��#�� �*%��� � ���� �� � ���������� ���� �� ����� ����� ���� ��� ��� ����� �� >� ��� � � �������� ���� ��� � ���� '����������������(�=:����� O�� ��� ���� ���� �� � '�� � �'�( ��� 8(� ��� ���� �#��� I ���������������� � ������ � + �� ��� ��� � �� N ��� '�� � �'�( ��� 8( �� ��� � � � ��� �� �� +� 8� 7� *���� ����� �� < ��;

��� :�� ; �%� � �� � �� �% �� �� �� ����������� �� � ������ ���� �� � ��������� � ��������� ��� � � � ����&�� ����� �� ��� �� ������ �%� ���� ��� ������� ������������ ����� ��� �������� �������� � � � � � � �� ������ �� ��

� ������ ��� ��#� �������� ����� �� �� ��� � ���� � ��������� ���� ��� � ��� ���� � ����������� ����&�� ���� '�� ��� ������� ��#��� � < 1� � < 7� ��� �� < 8�( 2 � �� ����%� ���� ��� ������� �� .��� ������ ����� ��� � ���� � � ����� ����� �� ��� ���B� �������� ��� '�� �(%� � ��� � ��� � � �� ��� ����N� ��� ����

� ������ �������#���� ���� .��� ������ ���� �� ���� �� �� ���� � �����

�( 3������ �� � �� �� �'�(� ��� � ���� � .��� ������ � ����� � ��� � � ����&��� �� � ��#�� ������ � � ���������� ��� ��� ��� "��� �� �' �� � (=

�( E�#� ���� �'�( ������ ���� ������� ����� ��� ��

� ��� ��#��( "��� �� ��� �#����� #�� � � �'�(� #�� ��� ����

���

�������� �%� � ���=

� ��� : ; A����� � � ��C �� � � � �� � � �� ���� �� ���� ��� ��� ��������������� ����� ��� ��� ����&�� ������� �� ������ ���� '����� *�+( �� �� �������� �� ���� � �������� � �� ��� ���6��� ����� � � ���� �� �� B��� �*'�(� �� �� ������������� ���� ��� ����� � ������ � �#��� ����� � ������ �������� ������� ��� ��� ����� ����� � "��# $����# ����� �� �� B��� �*'�(�

E�#� ���� �� ��� A���#��C � � .��� ������ ���� ��� ���#����� �� ����� ��� ���� ������� ��� ��#� ���#�� ������� � ��6���� � � ���� '� � ��� ��� ��6���� ������ ����� ��6���� #������� B� �������� �� �� ��6���� � ��� ��� �� ��� &��������� ���� ��� ��� ���� ������ ����5 � � ��� �� �� ��6���� � �� �(

���� ���

;;��

;2;� ;22� 2;;�

2;2; 2;22

22��

'�( $���� ������ �����

;;��

;2;�;22� 2;;�

2;2; 2;22

22��

'�( .��� ������ �����

��

Page 35: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "

��� :� ; � ���� �'�( �� < �'(� "��� �� � ������ ��� � &�� � ��#�� ��� �=�� :� ; ������� ��������� ��� .��� ������ � ���� � � ��� �%��� �������� '���������� 8��!+�(� "��� �� ��� ���������� ��#���� � ���� ���� =

� �� :� ; E�#� ���� �� �'�( ��� �'( ��H�� �� � � � ����� ��� �� � � �� � ��� ��������+� � �� � � � �� � ����+����� :� ; 'B���� @ �����( B� ���� �������� �� �� ������� � �������� ��� � �����������#� �������� ���� ���� �� � � � ��� ���� ��� �� ��� � ��� ������ �����%�������� ������ �� ��� ����=

� ��� :� ; -�� !� < ��� ��� !��� < ��'� N !�( � ��'�� !�(5 �� �� �� ��������

!� <

�������

� N�

� N �

��

� N�

�� ��

�� �

� N �

��

�� �

�� �

����� <

�+

���

+�+

7� �

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

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

� !����

� � : ; ������ � �%��� ������� ���� � ���� ����� �� ��� ��� ������ ��������%����� �� < ������� ���� �� � ������ P� < ���� �� ���� ���� �� �� � � � ������ ���� ��� ��6���� � ��� ���� ��� �� � � � � �� '�� � �� �#�� ��� ��� ������� ��� ���� � ��� ���� �� ��� ������ ��� �� �� �� ������ � � ��( B� �������� ���������� ������ ����� ����� ����� ��#� �� �������� ���� ��� ����� ���� �� �� ������� �� ���( B��� � ������ ��� � ������� ��� ������� � "� < ��'�(� � �'�� �(�� ��� &��� �.��� ������ �������� ���� � � � � ���

�( E�#� ���� �� � < ���� �� �� � � � ������� ��� �� �� < ����� �

�� �� ���

������� � "� ���� ��� �< �� � ���� ��� ������ # ������� ��� � �� ������� �� �

��� �� ��� �� ������� � "��

��� :% ; �� ������� #�� �� � ��� ����������� �� �%��� .��� ������ ��� �'�( �������#�� ���� ����� �������� �� � ��� ������� $ < '$��� $�(�� ��� �#����� � ���������� ��

��

��������

���)���� '�( $,� �����

��� ���� ���� ��� #�� �� � � ��� �I ���� ������� ��� ���� ���� � � �� �I �� ��������� �'� $( � ������ 6 �� �� �� .��� ������ �� ���� �� ���� ��� �#�� ��� ��

����������

� ��� :� ; '"��# ������������( J����� � ��%���� �������� � ������ ��� ������������� '%�� %�� %�� � %����( �� '%����� %����� %����� � %�������(� ���� ��� ������� �� �� � � ������� ������� ����� ���������� ��� � ���� �'�( �� � ���%� ����� � ��� ��������#� ��������� ��� ���� ��� ���

& < ��� �� '��(�� '���(�� '��� (�� '��� �(�� '��� � (�� ��� ��� ��� � �#��� ������� '��� �������� �������� � ��� ����(�

��� :��� ; '"��# &�����( -�� '�'�( < �)(�'�(, ����� ��� ������� � ��D�������� ���� � �� �%��� ������ ������ �� �� ������� 7 ��� ���� �#������ � .��� ��������� B� �������� ��� ������� '�'�( ����� '���(� �� '���(� �� '���(� �� '���(� ��'���(� �� '���(� �� '���(� �� '���(�� ���� ��� � ��� ��0�� ������������ ������ ��

��

Page 36: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"! ����������� ��������� ����� '�!� �

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

'�� � '�(� ' �� � '�( < '

���� � '�( < '

�� � )' �� � '�(,

/�� � ����� '�� '�� ��� '� ��#� ��� ���� ��� �������� 2 � '� ��� ��� ��� ��'�)'����(�, < '����(��

B��� ��� � � ��� �� ���� '� ��&��� � &��� � �� ������������ :� ; /� � � �����4 "���� � ����� ������� ��'��( < '��(���'�(�

� ��� :� ; E�#� ��� @��������%�%"���� ��� ')�(�

�� :� ; /�� '���# (�������� $�'�( ��� ��&��� ��

$�'�( < � ��� $�'�( < '��(�����$�� ��'��(��� ���� $�'�( ��� � ������ ��������� �� ����� � @�������� � ������ ����� �� ')�(� ��� ������ E���� � ����� � "���� � ������

�� :�� ; /�� �� � �� E���� ������ *� �� ������� ��� E���� � ����� 6 �� ����� "���� ������ +� �� ������� ��� "���� � ������ '��� ',-(�( B��� ������������������� ������� *�� +�� ��� ��� >������� ������ .�� E�#� ���� ��� ����� ���������� ���������

��� :� ; ����� � ��� ������� � �� ����� �������� � �� �� ��� "���� ��������'��� � �����( � � ��#�� #��� '%�� � %����(�

��� :�� ; -�� ��� �� ��� ����� � ��� �� ���� ����� �� ��'�(� �� � � � � ���� � ��� � �� E�#� ���� ���� � �'� N �(� < /)'�� �(��,�

� � � :� ; J�#��� � ������� ��������0���� � "���� � ������

� ��� :��� ; 'G� G� ���#������( /�� ��� � )�����, ��� ������� � ��� ���� ���

��#� ��� ���� ������ ��5 �������� ��� ������ ��������

'� � (��� N �� �� �� N ��

����

�<'� � (

�� �� ��

��� �� ��

����

<'��N �� ��� �� (� ��N ��

��� ���

������� ��� � �%�%��%�I ���� �������� '��N ��('��N��( < '��N ��(�N'�����(������������ ��� ������ �

���� � 0 �� �� � �0� 0 �� ��0 �� �� �

����

����� � ��� � �%�%� �%�I ���� ��������

'��N��N0�N��('��N��N��N1�( < '��N��N0�N�1(�N'�����N���01(�N '��N 0� � �� � �1(� N '0�� �� � �� N �1(�

�( ���� ��� ����� � ��� ������ .� �� ',)( � ��� ������ ��� �� 0� �� 2� '� �� 3���������� � ������ ���� ������� ��� ��� � � �%�%�����%�I ���� ���������

�( .�������0� � .� ��� ������%���� ��������

� �� :� ; " �� ��� ����F� &#�%������ ��� �� ����� ����� ��� � ���� ��%����� ��� �� ��� ����� �� ���� "� ���� �� ��� �� �� < �� '���� �( �� � � � 7=

��

Page 37: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� ""

�� :� ; �� �� ������� ��� &#�%������ ��� ������ � ��� ��� ��� +��� ����M������� ����������� ������ ����� ����� �!��� �!���� �!��� �!���� �!���� �!����!���� �!���� ������ ��� ���� ��� ',4(M�� ���� #���� ���� �� ����� �� �����%���� ��� � ������ ����=

�� :�� ; ',� -� B�������( ������� - ��� Q'� �� �( ���� � � ������� ����� ��� � ������� �� �� ������ ���� .��� ������ ��� �� �� �� �� ���������� �����?� ��� ���� -+ �� �������� Q'�� �( � ��� � ������� ����� ��� �� �������� ������R'�� �( � �����

��� ����� ��� � ��������� ���������� �� �� � ������4 /�� �%��� .��� �������� �� �� ��������� �� ������� �� ��� � � ������� ���� ������� #������ '"� ��������� ����#�� � ������� /'���( � ��� � ������� ���� � ��� ����� � ���� �� ������� � ���� �� �� �� �������(

�� :%� ; J�������� �'*(� ��� � ���� � *%��� .��� ����

� :�� ; >� ���� � ��� ����� ��I ���� �� �%��� .��� ��� ��#� ��� ����������� ������ '�( �� � '�( �� � ��� ������� ����� � ��� ����= 3������ � �������� �� ����� � �'�� �( ��� �'�� �(�� :� ; ��� ���� ��� ��I ��� �'�( ��� � ��� ���������� �����4 /���� �� ������� � � � � � ���� �'�( < R'���(�

�� :�%� ; J�������� ��� �������� ����#�� � �'�(� ��

�� �� ���� :% ; '���#������ S������ ��� �������( -�� !� < ��'�(� � �'� � �(� �� ���&��� � �������� � ��� �������� .��� ������ ��� ��� ��� .'�� �( �� ��� � ����� >��������� ����� �� !� ���� ����� ���� � ��� ��� ���� �� E�#� � �����#�4.'�� �( � .'�� �'� � �(( �� ��� � � !� ���� ��� ��6���� � �'�(� � :� ; E�#� ���� �'�( � 8'���(�� �� ��� �6�� �� �� ��� ���#� � ������� �� �� ��:����� -�� �'�� �( �� ��� � ���� � �%��� .��� ��� ���� ����� ���� �'�( �'�� �(5��� �6�� �� ������� ���� �'�( � 0�� 0�������'�� �(� ����� 0�� �� ��� � ���� �#������ ��6���� � �'� � �( �� ��� �% �� � � �� �� !��;�� :� ; E�#� ���� �� ��� � � � ����� �� � ��%��� .��� �� �� ���� �������� �� ����������� � ��� �� ��� � � ��

� �� :� ; B��� � ���� ��� ���� ���� � /����� J � � ���� �#���

�� :% ; ������� ��� ��� � ������� 2 � /����� J�

�� :� ; E�#� ���� �� ��� ��������� ��� � �� �%��� .��� �� ������� 0� � 0� �� � � � 0���� �� � �� ��#� 0� N � � �N 0��� � �� � ���� �I ����� ���� < ���� :% ; �� ��� � ����� '0�� � 0���( ��� �#�� ��� ������� ��� ������ � ������#� � �������� �� ����� ������ �� �%��� .��� �� ���� ����� ��������� ���=

� :� ; '>� �� ������� �97+�( ��� ���� �� � ��I ��� � �������� '��� � ���( �%����� ��� � ������� #�� ��� ���� ����� �� � � ���I ��� ���� ��� � �������� ���� � ������ �I ���� �� ��� � � � � � ��� >��#��� ���� �� ��� ����� �� ���� � �� �� ������� ��� ��� < ���

� :%� ; 'B� @ ���� ��� �� ��#���� �99+�( �� '��� � �����( �� �� �%��� .��� ������ ����� � ����� ������ � � � � � ���� � ��� � ������ ������� ������� ��� #������� �#�� ��� �� ������ �� ��� �% ��� ��#������� ��� �#��� � � ������ ������������ �� A����C � ��� �%��� .��� ��=

�� :�� ; '3� $� .������� �971�( ��� ���� �� .��� ��� ��� �I �#����� �� ����� �������I ���� �� �� ���� �I �� �� ���� ���� ��� ������� ������ � �� ��#������ ���

��

Page 38: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"* ����������� ��������� ����� '�!� �

��� ���T� �������� ��� ��� �� � ��H����� ����� ��� ���� ��� �*11 ��H����� 8%���.��� ��� ���� ��� 6 �� 9 �I �#����� �������

�� :� ; ������� � ����� ���� #������ ��� ��� �*11 ������� 8%��� .��� ��������� �� � � .��� ��� ��� ��6���� �� ���� ��� ������� �� �� � ��� ������������� �������������4

��/��� �/��� #*� 2 �/��� #*� � �/��� #*� 4 �/��� #*� 6

'/��� � ������ ����� ���� ��� ��� �� �� ����� ��� �� ����� ��� ��������������� �� ���� ��#������ /���� �� +� ��� 8 ����� ���� ��� ��� �� �� ����� ��� ���������� ��� ����������� ����� ��#������ �� �� � � � ��� ������ /�� ����� ���� �� ��#��I �� ��0�� � � ������������� � >��������� �� ��� ��� ���� ��������(

"���� � ������ � ���#�� ���� 8%��� .��� ��� ��� ������������ ��� �������� �� &����� ��� ������ ������� � ��� �����5 ������� ���������� � ����� � ��� � � ����� �� � �����

� � :� ; -�� � �� ��� ����� ��I ��� � �� �%��� .��� ��� ��� ����� # ��� � ��������� � ������ � � � �� ����� � �� ��� E�#� ���� ## �� ��� ����� ��I ���� �� '�N �(%��� .��� ���

�� : ; /�� 7%��� .��� �� � '4-( �� �������� �� ��� ����� ���� � �� ��� ��#��������� ����� � � ������ �%� � ��� �� � � � � �� E�#� ���� ����� �%��� .������ ����� �� ��� � � 7� :����� ��� ��� ���#� � ��������;��� :� ; ��� ���� ��� � �%������%� �� � ���� �����&�� ('�N �( � ('�(���� :�� ; ��� ���� ('� N �( � ('�( N ('�( � � �� '�( � < � ��� � � ('�( � 15 �'�( � � � ��� ('�( � �����

��� :% ; J�� ('1( < *=

��� :�� ; '- �� .�����( E�#� ���� ('��( � 1�� �� :��� ; '-� .���� ��� E� .#0�6���( � �%��� "��# ������ �� � ��I ��� ����� ������ '5�� 5�� � 5���( ����� ��� 5� �� � ���� ����� � ��� #������ � ����% ��� ������ �#��� #����� � �� � ��� ���������

�( � ���� '��� � �����( �� �� �%��� .��� �� ��� '5�� 5�� � 5����( �� �� �%���.��� ������� -�� �� < � � ��� ���� < ��5�� ����� 5� < 5� ��� �� �� � � ���O���� ���� ������� �� ��� ��I ���

+ < '����� ����� ����� ����� � ������������������� ���������������� (

�� '�N �(%��� .��� ��=�( ��� ���� �� � �� � ������ ������ ����� �� �� �%��� .��� ������ ���������� ���������� � '�( �� ���� ��� � � ������� � ��� ��I ��� '��� ��� ( ��� � �� ��

( ���� ����� ��� ��� � ��#� ���� ('�( � ��/'���(��� :�� ; '2���� ���#����( �� ��� �� 2�����F� ���� ����� ��� ����� ������ ��� ���������5 � ���� ����� ��� ���� �� �� � ����� � ����� ��� �� ��� �� ������� � ��������� ��� ��� �� ���#�� �� ������ ��� �� ���� ���#� � ������� ��� ��������� "���� < 8� �� �� ��� �� �� ����� ��� � ����� ��� ���������� ��������� ���� ���#������� ����� �� � ������ ������� ���� ������ �� �������� ��� ����� ���� � < 7�

��

Page 39: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "6

��� :%� ; �� ����� � ������ 2�����!.��� ������� �� 1 ����=

��� :� ; �������� �� �� ��������� � � � ��� �� ��� �%��� ������ ������� �� ��������� ���# ���� �� ������� ��� �� ���� � ��� ����� �� ������� ���� ������� � ��������� �� �� �������� ����#�� �� ����%��� �������� 3������ �� � ���#���� ��� �������%� ���� �� � � � ��� ���� ��� ���� ������ � � �� � ����� ������������� � :� ; E���� U� E��#���� ������ � ���� � �� ����)"��# ������� ��� �� ������� �%���� � ���� ��H��� ��� ��� �������� �� �*��# ����� ������� �� � � � ��������� �� ��� �=

� ��� :� ; ,���� ��� ��&����� � .��� ������ �� '�( �� �������

3'�( < ) '�� ��('�� ��('�� �� �� ��('�� ��('�� �� ��(��,������ � < ' ������������(��

�( ��� ���� ��� ��I ��� 3'�(� 3'�(� � 3'��� �( � �� ��� �� ��� �%��� � ������� � � � ��� ���� ������ + ���� ����� ��� ����� ���� � � +�

�( .�������0� ���� � �� � ����� ��I ���� �� ���� ������ � ���� ����� �� �������� ���� � �� �� ��� � � ��

��� :� ; >� ���� ����� �%��� .��� ����� ����� �� � < 7 ��� � < *=

��� : ; J���#� '67(� ��� �� ����� ���� ��&��� ��� ��#���!"������ ���� �������

��� :� ; "��� �� ��� ��#���!"������ ���� ��� ����� � �����=

� ��� :� ; J����� �� ����� �������� � ���� � ��� ����� ��I ��� � �� �%�������� .��� �����

�� :� ; '��#��� ��� "�������( >� ��� ����� �� ��6���� #������ � ��� �% ����� �� � ����� .��� ����=

�� :� ; B��� ��� 7%��� .��� ����� ��� � ��� ���� ��� �����)(���� �� ��� ����� ���������� �'��(��� < � �� ��� ������� ������ �

��� :� ; E�#� ���� �����%���� �%��� .��� ����� ����� �� ��� � � 7���� :� ; ,���� ������� > �� ���� � #���� �����%����� �%� ���� �� ������� .��������

� � : ; E�#� ��� �#����� ��� ��� '7-( ��� '7)( �� ��D���� �����%����� .��������� ��� ����#� ����� � ��� ��� �� ��� �� ��� ����

� ��� : ; "��� �� ��� ���� �%� ��� � ��� '�( ��D���� '�( �� ��� �����%����� .������� ��6���� � ��� &���=

�� :� ; 3������ �� � � � ��� �� ��� ��#���� � � � ����� ��#�� ��� ����������0���� $��� $

��� � ���������� � ��������� � ��#����� �� � ������ ����� �� ���

�����

�� :� ; -�� '��� ��(� '��� ��(� � '������ �����( �� ��� �%����� �%��� �� ���.��� ��� ��� ����� �� � � �� �#��� ���� '�� 8(���)�� '8 N �( ���, ��� '�� 8(���)'�N �( ���� 8, �� �� �� � ��� �� ����

'��� ��(��� '��� ��(���� � ���� '������ �����(��� '��� ��(�'��� ��(��� '��� ��(���� � ���� '������ �����(��� '��� ��(

� �� :� ; '.� @������ �97*�( O�� ��� ���#� � ������� � ��� � ���� ����� ����� � �1%��� .��� ��� ����� �������� #�� ��� ����� � ��� 1% ���

�� :% ; ��� � � $������� 1%��� .��� ��� #�� ��� ����� � ��� 1% ��=

��

Page 40: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"- ����������� ��������� ����� '�!� �

� � :� ; '>���� -� J������( B��� �� ���� � ���������� � 00�� ����� -�� -�� ��� .����� L��� �� ���� ��� �6�� �� � ���#� � D������ �� ��� ��� �������� ���� � �� �� ��� ��� ���� ��� �� ��� � ���� � 00�� �� ���������� ������� ���� ��D���� .��� ������� �����

���� ��� /�� -�� -� � 00���

� � :� ; 'J��� @�������( �� V < '��� � ����( �� � ��I ��� � � ������� � ������ ���� V� < '���� � �

�����( �� � ��I ��� � �

� ������� � ������ ��� ��� $������������������� V�V� �� ��� ��I ��� � ��� ������� � ������ �N �� ���� ������

'������ � ���

������ ���

������ � ���

��� ���

��� � ���

������ ���

������ (

��� ���� ���� ������� �� � �� �#��� �����

����� �� � �� ��� B� �������� ��� ���� ��&�����

� .��� ������ �� �� '7( �� �� ��������� �� ���� ������ �� V� < '�� �(�V��� ����� � �� E�#� ���� ��� �������� �� �������#�� ���� V��� < V��V��

� �� : ; J�&�� �� ��&���� .��� ���� ���� � �� ��� �� ��� ������� ��������#�������� �%� ���� '��� � ��( �� � � � ��� ���� ���'��� � ��( � ���'���� � �

��(

���� '��� � ��( �� ������ �� '���� � �

��(�

�� :� ; ����� ��� ��� ���#� � �������� ��&�� �� ��&���� .��� ���� ���� � ����� �� ��� ������� �%� ���� '��� � ��(� �� � � � ��� ���� ���'����� � ����( ����'������ � �����( ���� '��� � ��( �� ������ �� '���� � ���(�

� � :� ; ���� ������� L ��� ���������� �� ���� L8� ���� � �� ������ �� ������������� ��������� �� �� ���� L�=

� �� :� ; '"��# ���� (�� ���� �����( /�� ,��� �� ���� � ������ � '�������8�7�+!+�( ��� ������� � ��� ��� ������� ����� � �� ��� � ���� � ��� �� � ���� ���� ���� � �������

�( ��� ���� �� �� ������� � �������� ��� ,��� �� ���� � ������ � �� � ����#���������� � ���� � �� ��� � #�� #����� B� �������� ��� ���� �� � < + � ���� � � � � �� � � ��� ��#�����

�( "��� ������ ����� � � � � � �� � � ��I ��� �� � < �7=

��� : ; B� ���� #�� �� � � �� ��� ,��� �� ���� �� �������� �� � �#���� ������� �� �� � ��� � ������� 19= :����� /�� � ���� � �� ���� �� 9����;

� ��� :�% ; J����� � ������ �������� � #���� ��� ������ �%� ���� '��� � ��( � � ������ � �� � �� � �� � � � � � :/�� � ���� � � � �%� ���� �� 9����;

��� :�� ; �� ����� �� ��&���� ��I ��� W� ���� &��� �� �������� ��� �� �%��� ��

2� �6� ���� �� ��� �= :/�� ��� � < � �� ��#�� �� '76(�;

� ��� :� ; E�#� ���� ������� @ �� �� � �� 2� �6� ��� �� ��#��������

�� : ; "��� �� ��� �� � � ������� J ���� � < 7� � < �� ( < +� ��� ��� ''(��� �'( ��� ��� ���#��� ���� ���+8 ���+8 �� =

��

Page 41: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "'

� �� :� ; � ���� �� ��&���� ��I ��� ������ � ����� $ �� ��������#�� ���� ����&���� ��I ��� ������ � ����� � � ��� ��� ��&���� ��� ��I ���

0�0�0�0�0�0� < ������������

�( O���� ���� �� ������� ��� 0�0�0� ��#� ����� $�= '/�� A�����C � ���I ��� ������ � �� ��� � ����� � ���� �������� �� ��� �������� ������� $ � �� � ���� �� < ���� �� ��� � � ��(

�( "��� ��%� ���� � �� � �� ��� ��#� �� �� � ������� J �� ���� J*���� ������ � ��� ������ A�� �� < � ��� �� � (� � � J8C=

( E�#� ���� ������� J �� �� � �� 2� �6� ��� �� ��#��������

� ��� :� ; � ���� � ������ � � ����� ��� ���� ��� � � �������� � �� 2� �6���� � ������ �� ���� �������� @ ��� J� ����� �� ���#��� � ������ � ������� ��� ���� ��� � < ���( >� ���� � ����� � ��� ���� ���� ����� ��=�( "��� �� ��� ����� � � ���� � � ���� ���#����� ������ � ��� �� ��%��#������� � �� �=

��� :+ ; /�� � ���� � ���� ������� �� � �����0� ��� �� 2� �6� ���� ���� ����� �������� @ ��� J �� ��� �������� ������ ��� � < �� -�� '�'�( �� ��� '�N�(����� � ��� ��%���� � ���� '�'�( < � �� � � � � �� �� ��� � �� ��� ����� � � ����� � � � �� ��� '�'�( < � �� � � � � � N ���( "���� � ��� ���� )'�'�( '�'��� �(, �� � < �� +� 8� ��� 7��( E�#� ����� �� ��� �#�� #�� �� � �� ����� �� � � ���� � < �� � � ���� �� ��#�

'���'�( �X'�'�(� �� � � � � � � ��N � � � � �����

� N X'�'� N �(� �� � � � � ��N ������� ��� ��� ��� �� �� � �� '�� ���� ��� �� X' ������ �� ��� � ������� ���� X''�( <

������� '' (�( >��� ��� < �

�� � ���� � �� �#���( -�� )0�'�(0�'�( 0�'���� 7(, �� ��� ��� ��� �� ���� ��� ������&�� #������ ������� J �� ������� 97'�( �� ������� � '�'(� "���� � ��� '��� �(%� ��������� ��� '��(���� � �� ���� ���=

�( O�� ��� ��� ��� � '( � ������� '��'�( �� ����� � '�'(��( B��� � '�������( ������ ��� �� �� � �� � � ���� � ��

� � :�% ; ����� ��� ��� ���#� � �������� ������ �� ����� �������� � �� ��'�'�(� ��#�� � � � ��� � � ��

� ��� :� ; 3����� ��� ������� � ��� ���#� � �������� � ������ �� ������������� ���� ����� ��� ��#�� �%��� ������ �� ��� ��� )'�'�('�'�( '�'��� �(,����� :%� ; J ��� �� 2� �6� ���� � ������� 9� ��#��� � ��� � � �� � ��� �%����� ���� ���� � �� �����=

� ���� :�� ; ',��-�� (������.����� �( ������� ���� ������������� ������!(

�( E�#� ���� �� : ��� :� ��� ������ ���� ::� �� ����� �� : � :���( ����I ����� �#��� ������ � �� �� ������� �� ��� ���

� < :�:� :�� :� � :� � � � � � :�� ����� ��� :� �� ������

( �� ���� ��� �� � � �����0���� �� �������� ����� ��� ���� :� � �� �� ����������������� �������� ������� � � � ��

�( /� � � �����4 :� �� ��� ������ ����� ���&� � ���( "��� ��� ��� ����� ����� � +�8�79�*7+719�9+�+18*�*8++1+��97��118�9�=

��

Page 42: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

": ����������� ��������� ����� '�!� �

���� :�� ; J�� � ��� � ���� � �%��� ������ � ������ � ��� ��� ��I � ��%���0���� ������ �� ��� ���#� � ��������

���� :� ; O�� 3I� '7;( � ��#� B�����F� ������ ���� �� � '�� � $(�

��� :�� ; ����� � ��� �� '<-(� �� � ��� � ��� �%������ ���� ��� ������ >����� � ��� 7�7� &#�%������ .����2��� ���� ��� �����= "��� � ���� �� ��� ���������������= /�� ������� �����=

��� :�� ; -�� � �� � �������� � ������ ��

�( ��� ���� �� ��� &��� ������ � � �� ��������� ��� ��� ����� ������ �� �������( �� � ��� ���� ������ �� �� ������� ���� ��� ���� �� �� ��� �%�������� � :��( B �������� � ���� �� ��� �%�������� � �� ��H����� �������

� ���� :�� ; 2� ��#����%����������� ������� B� ������ �� �������� ���� #����� ����%��� ������ ��� ��������� �� ���������� �����

���� :��� ; ����0� ��� � ����� ���� � ������� B�

�� � :�� ; -�� :� � � � � � :� �� ��� �%��� ����� ������� ���� ������� ��#��� �� ������ �� �� �� ��� �%��� ������� /�� �6�� � ���� ������� �� � ��#� ���� �� ��������� �� :� :�:�:�5 ���� :� :� �� � �� 2� �6� ��� '���� �� ��� ������ �

�(�B� �#������ �� ��� ��� �� ���� � < �� ��� ���� ������� ������� � ������� �����5 ��� ���� ��� ����� ���� ����� �� ��������� � � ���( ��� ���� �� �� �� < �# �� ������� ��� ��� ��� ��� ������� ��� �� #� < :� �������� ���� �# �� � � ������� � :�:���� ����� � < 9

� �� ��� � ���( "���� ��� �# ������ �� :� :� �� #� �� ����� ��� � ������ � ��� 9�= �������� ���� �� ������ �� < 9

� �� ���� B� �� ��� � �� ��� �� �� �� � ��#���� �� ��� ���#� � ���� B� ��� ���� �� < 9

����( $� ������ �%� ���� � ��� ��� '�#(�� ����� � � � �� � ��#��� � � ���#� < :� �� ������

�( �������� ��� ������� � 199�+7� 99�1�9� 9�+�+�� �9�9�9� 9�9�9�� ��� 9��9������ � < *�

���� : ; � �%��� �� 2� �6� �� � � ��0� �� ��� �� �� � ������ �� � ������� �%��� ������ ��� � � ���� ��� � ��� �

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

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

�� � � �� � ��

�� ��H������ ����� � ������� ���� �� �� �� � ��� /� � �#��� ������� �%��� ���� ������� �� ������ ��5 ��� ������� :����� ���� ��� ���� '?����4 2���������919(� ������� 8; ��� �������� ����� �� �� �%��� ���������� B� ���������

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

����

�� � ������ ��� �5 ������� �� �� ����������� ��� ��� � � ������ ���� � < �� ������� �������� ���T� ������������

������� ��� ��&���� ������ � ���� ����� �� �� � < ' ������(� ��� � �� < ' ������(� �� ��� < ' 0�0�0�(�� �����

0� < '�� ��('�� ��( ��50� < '����� ���(�� '������� �����('�� �(� �� � � �

��� ���� ��� ���� ���� ��� � ��� � ������� � � �� � ��%��� ��� � �� ��� � � ��

Page 43: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ������� ��� � ����� "0

���� :� ; ����� ��� ��� ���#� � �������� ���� � �%��� ��� ��� �� ��� ��

���� :� ; "� �� ����� ��� � ���� ��� �� ����#� ���� �� ��������� N ��� � �������� ��� ��I ��� ��+87*�195 �� �������� ��� < � N �+ � 8 N 7 N * N �1 � 9 <��+� 87� *� N 19 < �� N �� + N 8 N 7 N * N �1 N 9��( "��� �� ��� �������� �����#� ������� ���� ���� �� ����������� �� � � � ���=�( ������� ��� ��������� ����� ��� ��� ��%����� ��I ��� 91�*78+����

� ���� :� ; ����� ��� ��� ���#� � �������� �� ��� �� �� � �� ��������� ����� �����+87*�191�*78+��= B� �������� ��� < ���+8� 7� * N �191� �� *78+ � �� ��

Page 44: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

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

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

� �%&' ()*$

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

�� -�� �� < �� � � N�� ��� #���� '��N �� � ��N �( ������� � #������� '��� � ��(�� ������� ,� ?�� ����� Y�� � �F � Y�� � � F ��� Y�� < �� � �F � Y�� < �� F ������ ��������� ��� ��� � � �� �� � � �� ���� ,��

�� '�� �� �� �� +� �� �� �� �� 9(�

�� ���� ,8 �� �������� ���� �� ����� ���� < �5 �������� ��� ���� �������

������� < �� ��'� N ���� N �������� N � � � N ���� ��(� �� ��� ��

��� � � ���� ���� �� ���� ���� ��� ��� :/� �� �� �� �� ���� �� ���� ���� ����.���%�� ������� ���� ����� ��� �� ����� ��� #����� �� ���� ��� � ��� ����� ���� � ����� ������ �� �� ��� � ���� � ��;

� ��� :��������0��; ��� �� � �� � � �� � � � �� ����� �� < ��

��� :S�����; S���� ��� �%� ��� '��� � ��(�

��� :E������ � � ����� ���; ��� � ��

�� :2��� �� ���������; �� �� < �� ��� �� � �� � �� � � �� ��� ������ ���������

�� :J������� ����� ����; �� < �� ��������� ��� ��������� ?�������� ����� � �� � � ��� � ��� � ���� $��

� 2�� ��D���� �� ���� � � ������ ���� ""�#� � � � ���� �� ���� �� ������� �� �����4

��� :��������0��; ��� � � � ��

��� :�����; ���������� �: N �; � �:� N ����;� ��� �� � �� �����������: ;� �:�; ��� �: N ���� N �;� �:� N ���� N �;�

��� : �#��� ��; ��� � � � N �� ��� ��������� �� � � �����

�� : �#��� �; ��� 3� ����� �� � 3� ���������� ��� � � 3 ��� 3� 3�� ���� � 3� /��� ��� � N3� '$� < '�� ����(� �� � < '���� ��(��(@�� �� � @��

�� �� �)'����� ����(�, < )�'����( '����('����(,� ���� �)'����� ����(�, <�� N �)'����� ����(�, < )�'����( '�� ��('�� ��(,�� ����� � < � ��

6;

��

Page 45: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� *

�� / ������� �( ����� �� �� �� �'�( �� �� � ( � � � �� N (� ������ < ��� (�� ��� �� �'�� � (( �'�� N ( � �( < �� �� '7(� :.� �� /����� ��� ������� E��� 2 � �������� '�97*(� 8+8�; ��� ��� ������� �*�

� O�� ������� . ���� �� ��� ��� ��� �� ��� ������ ��� �� �� ��� ������ '/��������� �'�(� �'�(� �'8(� �(

�� @����� ��� �������� ����� ���� �'�������( �� ���

��� �� N�� < ���� '�� � �( < ������+� ��� �� < �� N �� >��� �� < ����+ N ����

��� �� < ����+� ��������������� ������ /�� ����� G������� ������������ Z��� �� ���� '���8!��1+(

������� ���� ������ �� ��� ���� � ��� � '��*9(� E����� 88� ����#��� ���� ��� �%���� � 00�� ��� �� � �� '� � �(%���� � 00�� ����� � ������ � ���� � ������ -���� < �� � ���� < �� � ���� N � �� ��� � ���� � ����� ���#�� � ���� ������� ���� ���� ����� ���� �� < ����� � :� �#��;5 �� � �� �� �� �� �� <�� N �� N � � �N �� �� � < 9 ���� � �� ���� ������ ��� ��� �� �� < ������+��

,�� ���� �� ��� ���� �������� ������ ��� ������� �������� ��� A���������� ��C �� ��� !� ��"�������� #�"� $$� '$ �������4 �77�(� 2� �7� >� ���� �������� ��� A ������ ��� ��������� � �����C ������� ����� ��� ���� 97 �#�� ��� ������� ���#� ��#�� ����� ��� 97 ��� � � � ���� ���� G�� "����� ��#��� ��#������� � ���� � 00�� �� ��� -���� ������ � ��� ����"� � '?����4 �*9+(� ������� �������������� �������� � � ������ � ������ �� ��� ����%���� ���� >� ��� ��� ���������� � ������� � ���� ��� �� ��� ��� �� ���� �� � ����� �� � � H� ��� �� ���������� ���� �� ���� �#�������� � � �� ��� �� ������� � &�� � ������� �� ����

��� /�� �� ��� � !� < !��� N � N !��� N !��� ���� !� < !� < � �� !� <���� � :� �#��;� :����� ������ ���������� ����� � '�1*7(� **!*��;

��� '�( /�� ����� � � � � ������� ����� ��#�� ���� .��� ������ �� ������ ����������� �� � �#������ ���� '8� +�� ���� ��� ���� ����� ���� �+(4

��� :��������0��; ��� �� �� � �� �� � �� '"� ��� �� ���� � � ��(

��� :S�����; S���� �� �� � /��� ��� �� �� �� ��� � � 8 �� � < ����� :?�� �����; �� �� � �� ��� �� � �� � �� ���� � �� � N �5 �������� ���

� � � ��� �� � �� N �� @�� �� � ��

�� :3#�� �����; �� ���� � �� ��� ���� � ���� � �� ���� � �� � �� � �� � N �5�������� ��� � � �� �� � ����� ���� � ���� N � '� � ��������� �� � � < �(� @�� �� � ��

'�( $� ��� � ���� ��������� ����� � ��� ���4

��� :��������0��; ��� �� �� �� � �� '"� ��� �� ���� � � ��(

��� :S�����; ��� �� � � ��� #���� '�� � ��( '���� � ��(� . � 28 �� � �� �#������ :?�� �����; �� ���� < �� ��� � � � � �5 �������� ��� �� � � ��� � � � N ��

@�� �� � ���� 2��

�� :3#�� �����; �� ���� < ���� N �� ��� ���� � ���� ��� �� �� � '� � ����������� � < �(5 �������� ��� �� � ����� ���� � ��N�� �� �N�� @�� �� � 2��

/���� ��������� :��� G� ,����� ��� ����� ����� ���%�� � '�9�7(� �17; ��� �������#�� �� ����� ��������0���� ������

��� �� ���� �� ��� ��� � � �� �� ���� +� ��� � � ��� �� �� � �� ��������� � ��'����N�(� �� ���� 8� ��� � � ����� �� ���� � �� �������� � � ��'����N�(�

��

Page 46: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*! ��1��� � �C������� '�!� �

������� ���&����� ����� � ����� 2�� 2+� 28� � ���� ������� �� ������ �������� ��� #�� � � < �[ �� ��� ������� � �5 �� ��� ��������� �����&����� � ���������� �� ��� ���� ���� ��������� �������� ���� ��� �����

�� ��� :��������0��; ��� � ��

��� :S�����; S���� ��� ������ �� �� �

��� :-��������; �� � �� ��� � N �� �� � �� ��� ��� �� � ���

�� :��������; �� �� � �� � �� ��� �� � �� N � ��� ��� �� � ���

�� :�������; ��� � � �� ��� ��� �� � �8 �� � ���� ��� :��������0��; ��� � ��

��� :3#�� #�����; �� �� �#��� #���� ��� ������ �� �� �

��� :-��������; �� � �� ��� � N �� �� � �� ��� ��� �� � /��

�� :?�� #�����; �� �� ��� #���� ��� ������ �� �� �

�� :��������; �� �� � �� � �� ��� �� � �� N � ��� ��� �� � /��

��� :�������; ��� � � �� ��� ��� �� � /8 �� � ��/��� �������� �� ������� ���� �� �� ��� ������ �� &��� ����� � ����� ������� �� � � ����� �������� ��� ��#� #������ /�� ���� ���� �� ������� � ���������+��!7 ��� � A����������C ���#����� '������� ������+!��(�

��� � ���� ��� ' ��4�( < 4'� ��( �� � � � �� ��� ��� '�4�( < K� /���� �������������� '��� � ��( �� ��� ��� �� �'�� ��( < �� ��� � �� �� �� � ������.��� ������ �������� � ����#� ��� ������� ��� ���

��� E � ��� ��������� � +%��� ��� )�' (� �'�(, �� �� ��� � �� �� �� � � � � � 1� :�� �� �� ��Æ �� � ��#� ���� ���� �� ����������� ��� ���# �� ���� ������� ���� ���� ���T� ����������� �������� ���T� ������� ���� ��� �� ���������� ���� ������ ���� �#��� ���� � � �� ������� ��� � ��� ��� ��� �������� ��������� ������� � � ���� L���� ��F� ��������� ������� ��� 8% �� ������ 8� 8 �� � �� �� ����� ��� � ��� !����� � �%������� ������� �� "� L������� � 3� @������ ��� �� >� "���� �� '�97�(� ���� ��8� ������������ L������ ���� � ������� �� ������ � #������ � ������� ����� ����� ����? �� ��� � ��������0���� �����/�� >��������� E 00��� &��� ������� '(')*+,-'(')*+( '�9��(�;

� � O�� �%��� .��� �� � ��������� ��� ������ �� < '�� �� �� +( �������#��� �� ��� �������� �������

��� < '��� ��� ��� ��(� :�� Z� -�� ����� �� ��� ����� �� ���� ����� ���

'�971(� ��!1�� ������� ���%��� ������ ���� �� �#�� #�� �� � �5 �� ������������ � < 1 �� �� ��������� '�� �� �� +� 8� 7� *� �( �� '����� ����� ����� ����� ����� ���������� ����(� 2 � � � � ����� ���#�� � ��� � ��� ������ �������� ���� � � 8�;

��� '�( �� ��� .��� I �������� �������� ����� �������� ���� �� ����� ���� ������� ,� � � �� ����F� ������ ��� �� �7* �� � ������ /�� ��� �� �� �� N �

� N

�� N �� N �8'�

���

�� N �

���

��( N 7*��������'�

�� N �

��('�

�� N �

��(�

'�( @������� '��� ��� ��� ��( �� '�� �� ��� �( ��#�� � N ����� N +�� N ������ N ���5

�� � ��� � ��� ��0�� -�� ������� ��� � *� $� �� ��� ���� ��� �� ��� ���#� �������� � �#��� ��� '��� ��� ��� ��� ��� ��� ��� ��( ��� � �*%��� � �����

��� @�#�� ��� I �������� #��� '��� ��� ��� ��� ��� ��� ��� ��( ��� ��� ��� �� �%������ 8�*��J � &�� ��� ��������� � �� N ���N � � �N ���� ��#���� �� �'�(� �� 85���� �������� �� �� ��� �� ����� � ��� ��� ���� ��� ������ � �� ����� � �&���� ��� �� �'�( �� ���� 3������ ��� ��������� �� �� N ��� '�� � �'�( ��� 8(���� ��� � < '� � ( �� 8� � < '�� N � � �N �� N ��( �� 8�

��

Page 47: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� *"

���� �� � < �4 �� � <�� ��� ���� ��� �� '�� ���� ����� ��� ���� #��� ����� � '�� � �( �� 8(5 �������� ����� ���� ����� � ��� ������

���� �� � < +4 �� < � ��� ���� ��� �� 5 �������� � + ����� ��������� +� � < �4 �� < � < �� � ����� ���� ����5 �� < � ��� � � ��

�� ����� � � ����� ���� ����� ?�������� ��� ����� ���� �� � ��� ����� � < ) N'��+�*���7�8����(,�� � ������ �� � < '������+�8�7�*��(� ��� � < ' N��( �� ��

���� 8� � < �4 �� <� ��� ����� ���� ���� ?�������� ��� ����� ����

�� N ��� �� � <�5��� � ��� �� � < �5�� N ��� �� � � ��� �� 8�� � < ' � +�( �� �� � < ' � ��( �� �5

��� � ��� �� � � �+� 7� *�� � < ' � +�( �� �� � < ' � �( �� �.�#�� �� < '����������������(� � �� ��#� � < '�� �� +� �� �� �� �� �( ��� � N +�

� N�� N ��� � N +� N +�� �� N ���5 ��� � < �� /� � ��� ����� ��� �� N ������ ��� ������� �������� ����� �� '�� �� �� �� �� �� �� �(� ������� 8�*��J ����� ����� � N ��� N ��� '� N ��N ���(�'�( '�� � 8(5 � ��� ����� ��������� ���� ���'��������(�� ���������� � '��� ��� ��� ��( < '�� �� �� �(� : ��� ����������� ��������� �� ��� ���� A ��4 /�� &��� �* ���� � ��C;

B� ��������0����� � ���� ����� ���� ������ ����� � I �������� #�������� ��� ����� ����� �� >������ L ���� ����������� ������ ��� ��\�� ���� �����

���� '�998(� +��!+�9�

��� '�( �'�( < �� �'��( < �'��( < �'�(� ��� �' �( < ��'�( � :�� ���;���������� ���� �� ����� ��#�� �'�( < �� � ����2� � ����2��� � � � � � ��2�� �����2� < :�� ���� ; ��� �� �� ��� � � � � ������� ��� �� ��������� �� ��� ��������� ��#� �� < �� � � �� < �� � � � �� < �5 �� � 2� < �� 2� < �� 2� < �� 2� < ����� 2� < � '�� �#�����(� ���� �' �� � ( < �� � �� � �� � �� < ���

'�( "� ��� ���#� �������� ��������� � ���� � < ��� /��� 2� < � ������� 2��� <� � � < 2� < �� :/�� ��� �'�( < ����� �� �� ��� ��� �� � ���� �� ��� ��;

'( / �� �� ��� � � � �'�( #�� ��� �%� � ���� ��� �������

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

��� �%� ��� � �� ��������

������ �� ��� � ������ �%� ��� '������ �� � ���� ��

��� �%� � �� �������� ���� �%� ��� ��� ��������� ��� ��� ���� ������(� /� � ����#����� �� )

���

�N'����(����

�,�����

���

�< ��'�� ���(N����'���(� :/�� ��� �� �� '(

���� �� ��# �%��� .��� ����� � � '�( ��� '�( ��� ����& � ��� ��D���� .��� ��������� /���� ��� ��� ��� � � � �� B�� ���� ���� ����� ���� '�911(� �+1�!�+9+�;

��� -�� � � ��� # � �� ��� ��#� ���#�� � � .��� ������ ����� ����� � ��� # ��������� ������� ��� � �� /��� ��� ���� � � ���� � � ��� � ������ �� � � ���� ���� #�� ��� ��� ��#� �������� � .��� ������ ��� ���� ��6����� :��������������������� � ���� ������� � ��%������ �������%������� � ����� �� ������� ��� ���� �� � .#�� ���������� � ������� !��� �������� �� "������ G�J���� 'L� ���� �91�(� ������� +�;

��� �� < �'�( �'( < �'� ( ������� ���� < � ���� '��( < � '���� � �(� ������ ����� �� � < '���� ��(� �� ��#� < '���� ������ ��(��

�� J�&���� �'�( < ������ �� � ��� �� &�� �'�( < �'��� �(5 ���� ����� ��� ����%��� �������� � � � ���� �'�( ��� � ��#�� �%��� #�� � � ?�� � ���� �� �#��� ������� �� ��� "� �� �#�������� ��&�� ���� � �� ��� �� ��� ���� �� �#��5 ����'=( �� ������� �� �� < ���� � � � ��� �� � �� B� �������� ���� '�( < �� �� ������&�����5 ���� �� � ����� �������� ��� A����C � ���� '( �� ��� ������ � �

��

Page 48: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

** ��1��� � �C������� '�!� �

�� -�� $ < � 5 ������� ���!�� ����� � ���� ���� ���� � $ � �� � � � $� "���#� �)�'$(, < �)�'�( �'(, < � �� ��� ��� �� ����� ��� �����#� �������� �� � �� � ���� $ < '��������� '� � �(��(�� /�� ������� ������� $ � �� �� ���� � < � N � � � ��� � < � � � < � < �� �������� $ < �� � ����+�� /�� �������� ����������� ���� � $ < '������ '� � �(��(� N � �� ���� � < � � � < � < �� ��������$ < ����+�� :�� L� Z ��� ���� ����� ����� '�9�8(� **15 �� @� ��#��� ���� �����

����� '�9�7(� 79*�;

��� -�� < ��� N � � � N ��� ����� �� � � � � � �� � �5 ���� ��� V� �� ��� .��� ���� ��� �� � ��� �� ���� ������ �� � ��� ���� �� �� ����� ���� V� �� ������ �� O��

V��� � ���NV���� � � �

��N � � �N���NV��� � ���N � � �N���NV�� � �� � �� �#��5V�� � �

��NV����� � � ���N � � �N���NV��� � ���N � � �N���NV�� � �� � �� ���

��� �� �������� �� � < '���� ��(�� ��� '� N �(�� ������� ������� � !� �� �I �� �

��)�� '��(�����)�� � � � �'�� '��(���'�� '��(�� (( ((����������� � ��� ���� ������� �'�( < '���� ��(�� /� � �� �� �� �� ��� ���%���� � !� �� /'�( ������ ��#�� ��� ����� ������� � < �

�������� ��� � < ��� ������ ��������� +�+�*7�������+*�88�9� :"����#�� ''�( �� � �����#� ��� ����� � �������� �� �������� ')�'' �''��( (, ��� ������ ������ � .��� ������ ��� ������#�� �� >� 3� ���0��� ���� �� '�9�+(� �1�� �� ���� ����� ��� ��� ����� ��� ��%�#��� ������ ��� � ��� ��� ������� ��� �� �� ��� ��#� !� < ������� �������� ���� ��� ������ � ����� 8�7�+5 ���� �� ������� �� ���� ��� ��� ������ ������������� ��������� ���� � ��;

� � '�( � � < �� �� � ��� �� � ������'"�( � �� ��� �� ��� ������ ��I ���

�� � �� � �� � �� � �� � �� � ���� ��������� �� �#��� ������ ����� /� � ��� ������� ���� ������� � ��� �������������������� � '� � �(�� ��� ����� ��� �������� �� ���� ������� ��� �� ���A�������C ����� �� ��� ����� ���� ��� ������� ����� ���� ��� ��� ���� � '���(����� ������ ���� ��������� ������ ����� ���� ��������� B� �������� ���� � < ��� <'��������(� ��� � < 1� �� ��#� ������'"���( < ������ �

'�( �� � �� �'$( ��� # �� �'�( �� .��� ������� �� ��#� $ < '$��� $�(� ���� < '$��� $���$� $�(�� ����� $��� $� < ��� �< �� � 2� '�(� ������ � � � � � ������ '���� �� (�� $� �� $� < �� ������ � � $ � �� �� �� $� < � �� ��#� $��� < �� 5���� $ � � ������� � � �� :��� � G� 2��������� L� ��������0� ��� G� 3� >����� ��������� ����� '�9**(� 8�7!8+��;

��� �� ���� ���� $ �< �� ��� < ��� $� ��� !� < �� � ��� � � � ��'� N �(� ��� � � � ����� /��� '� $(� � ��� � ������ ���� �� ��� � � !�� ����

����

���'� $(� ���� < ���!�� < ��� �� ���� )�'�( $, < � ���� '$(� ��� ��� ���� '$(� < ��� $�� /�������

��

��������

������� )�'�( $,����� < �

��

����������

�����

���)� ���� '$(,����� < �

��

����������

��� < ��

:��� ,���� ,� 2 ����� G��� ���� �/���� ����� 0� '�9*9(� +��+!+�+��;

��

Page 49: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� *6

��� /�� ��� �������� � � � ��� ������ ���� �� ����� ��� �� �� �� ���� � ��� ���3I� '�( ���� �� � < '���� ��(� �� ��#�

���� '�( < '0��� 0�(�� ����� 0� < �� �������

/ ���� �� ��� �������� � � � ���� ��� �� < �� ����� ��� �� ����4 �� � �� � ���� � ����� ��� �������� ������ ��� ������ ������N�� � �� � �� � ��� ��� ��� ��������� � � �� ?�������� ��� ��� �������� ������ �� ���6��� ��� ��� ��� �������������� N �� � &� < '�&���( � '�&��� N �( < '&��� (�� /��� ��� ����� ���#���� ��G]�� ���� �� ����� ����������� ��� ���� ��� ������ ��� ������� ��������4

��� :��������0��; ��� �� �� �� �� '"� ��� ��� �� ���� � � ��(��� :-� ��� �� ��������; ��� ( � �� E����� ������� U ���� � < �� N (5

���� �� ( � �� ��� ( � '(��(�� ��� ������ ���� ( < �� :��� ������� ���!���;

��� :������� �� ��; ��� �� �N �� /�������� �� � �� �� �I �� � �5 �������� ����� ��N :� � '�� �( �<�; ��� ��� �� � E��

��� :2���� � ����; ��� �� %�� � �� � �������� :B��� ��� ����; �� �< � ��� %� � %� � � � � ����� ��� ������

���� < �� /��� ��� %� � ��

��� "� ��� � &��� ��� '� �� ��� ��� �� �� ��� �� ��� '�� � � ���� ����� '���� ��(�

� )'���� ����('���� ����('���� ����( '�� ��('��(,�� -�� 0�'�( �� �������������� �������� � ��� ������ � ��&���� ���� ������������� �� �5 ����0�'�( < �N �� 0�'�( < �

� N �N �� ��� 0���'�( < �0�'�( N 0���'�(� ���� 0�'�( �� ���0�� ������� �� ��� ������!>������ ������� � &��� �� ������� �� ��� ��� �� 0�'�( ��� �������#� ��������� ��� ���� ������ �� �� ������ �� �� ����� +����� /�� &���� � #�� �� � � ��� �� �� +� 7� *� 9� ��� �8� �+� �9� +�� ++� +7� +9� 8�� 7�� 7+� *7� *9� �8�1�� 1+� 1*� 19� 9�� 97�

:@ ����� ��� �� ����� �������� ���� ���� 0����'�( < 0�'�(� ���� 0�'�(��#���� 0���������'�(5 �� �������� 0����'�( �� ������ � � ������ � �N�� �� � ����� �� ��� ��� � �N N � ��� �������� ��� ��� ���� � � ��� � � �� /�� ���������0�'�(� 0��'�(� 0'�(� ��� 0'�( ��� ����� ���� � � �� �������#��;

��� ,���� �� �� � � ����� �� ��� ����� ����� � ������ ����� '"���� ���������� ������� ���� ��'�( �� �� �� 0�� �� � � �����5 � � ��� �#����� ������ ������ ������� ��� �� �� ����� ������ ��� ��� ���� ')7(!');( #���� �� ��� ��(

��� 2� ��� ��� � �� �� ��#�

��'�( < ��� ��'��( < (�'��(�����(�'��(

����� < (�'�(�����(�'�(

�����(�'�(�����

�� � � � � ��� ��� �� (�'��( < (���'�( ��� (�'�( < � �� ���� ������ �� ����

�� � � � ��

��'�( < '��(�� ����� ��'��� �( < (�'�(�����(�'��� �(�����(�'��� �(����� < (�'�(

�����(�'�(�����(�'�(

�����

��� �� ����� �� N �� '�� � �( ��� (�'��� �( < (���'�� ��( < (���'�( �� � ��

�� $�'�( <�

�� (�����5 ���� ��'�( < $�'�($�� ��'�( < $����'�(� :@� 3� � �� E�����

��� #��� ����� ��� '�( � '�9+�(� �8�!��9�;

��

Page 50: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*- ��1��� � �C������� '�!� �

�� �� < '���� ��(� ��� � < '���� ��(�� ��� ������� �� �� ��� � �� � ��'��(������� ����� '' � �( �� ��� � � � ��� ���� � � ����4 ( < � '>�������(5 (N� < ���'E����(5 ( N � < � � �� � '"����(�

-�� >�� 9�� ��� "� �� ���� ����� ������� �� ��� ���� ������ ���� ���� < '���� ��(� � � < '�� ����(�� � < �� � � � < '���� ��(�� ��� � <���� ' ( < )'����( '���� � � � ��(,�� �������#���� /���� ���� ��� L��������� � � �������� �� ��#� ��� �� ���#� ��� ���

>��� <

�>� � '� �(>� � '� �(

�� 9��� < 9� �

�� �� �

�� "��� <

�"� �� "�9�

��

.��� < .� ��� �� �

�� *��� <

�*� � '� �(*� � '� �(

�� +��� <

�+� � '� �(9�+� � '� �(

/� � +� < "��*� < *�"�5 .� < *�>� < >�*�5 ��� *� < +�"

�� < "�+� <

.�>� < >�.��

��� ��� :>������� ���������; B� � < �� �� � �� �� ������ ��� ���� '%� � %���� (�� '%� N%���� � %� �%���� ( �� ��� ���� � ���� �#��� � � � ��� '/������������ �H���#��� ��� %� � .�%

��(

��� :2�� ��#������; ���� ��� �������� � ������� 7 � ��� #��� %� '/������������ �H���#��� ��� %� � >�%

�� �� ��� ������ � ������� +7�(

��� :.��� ������ ���� ������; ���� ��� �������� � ������� +� � ��� #�%�� %� '/���� �������� �H���#��� ��� %� � "�

�%��(

�� � ��� �� � ��� ������ #�� �� �� ������� +�� �� ��� �� ������ � ����� ����� "���� "+ ��� � ������ ���� ����� �����

��� �� � < ���N� � �N��� ���� 2� � � � � � 2� � �� ��� ���� ������ � �� !���� � ��!�� ������

!� <��

�� !� <

��

8�+

8

�� � !� <

�� N �

��

��� � � � ���/������� ��� � ���� � ���� ������ �� '� �( ��

����������N �

��� ������� � < �'�N�(

��#�� N/'�( ������5 � ��� �� �� �� � ������� � �� ��� /'�'�((����� �� ��� �'�N�(�

:/��� ��� ���� ����� �� ��� ����� ���� ��&������ ���� ����� '�� ( ����� �������� � �'� N �(� < R)'�� �(��,� 2 � � ������� ���� ��� � � � A���C ������� ����������� ���������;

� � -�� ��'�( < � ��� ��'�( < ?������� ����� ��'+�(� ����� ? < 2

��� �� /��� ��'�(

����� �� �� ��� ����� ��� ����� �� � �������� ��� � � �� �� ��'�( < ?��

��� �� ���

������� ����� � ��� @�������� � ���� (�'�(� �� ��#� ��'�( <�

�� ����'�(�������

���� � < '���� ��(�� �� �� ��� �� ��� ������� .��� ���

��� -��F� ��� ��� ������ ���� ��� � ��� ������� � ��� �� 0� �� 2� '� �� 3�� "� ���� �&�� � ���� ����� $ � ��� �� � �� � � ���� ��� ������ ���� '��(��������� �� �� ��� � �� � ��� ������� ���5 ���� ������ �� �I �#����� � ��I ����� ����

' N �( � )$' ( N $' �(, � '�� � �(� �� � � � � � 1�?�� �� ��� �� $'�( $'�( < � � � � 7 * + 8� �������� ��� �������� '�� N �� N 0� N �� N

2� N '� N �� N 3�('�� N�� N�� N1� N@� N 9 � N"� N.�( < �� N �� N � N!� N

��

Page 51: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� *'

"� N #� N $� N%�� ����������������

�� !"#$%

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

�����������

� � 0 � 2 ' � 3� �� � �0 ' �2 3 ��3 � �' �2 � 0 �� ��0 �� �� � � �3 �2 '' 2 3 � �� �� �� �0� �3 2 �' �0 � �� �� 0 �� �� �3 �� ' 22 �' �� 3 �� � 0 ��

�����������

�����������

���1@9".

�����������

'�( /���� �� � �*� �* �� ���� /�� ����� �� �� �� ��$'�( $'�7( < � � �� � �8 �7 �+ 8 9 �� � �� 7 * + 1�

���� ����� �� ��� ��� �� � < 7� :��� ������ ���� � '�1*�(� 8*�!8�7� �� &9� &���&��� ��� &�+ � ���� ������ ���#����� ������ ��� ��#�� ��� ���� ��� ��� �� � ������� ����� �� � �� ���� �� ��� >������� ��������M���� �� >�������������� ��#� ����� � ���#����� :����� ��� �������� ����1�����2��� '�( �� '�19+(� �8�!�8*;� ,��#��� ���#����� ����� �� ��������� � �� �������� �� &�8� ���� ������ � �����;

�� Z��5 ���� ����� � �� �� ��� � � ��� �� ��� ������� � ����� �� ���������������� ���� ������ ���� �� .��� ������ ����� ' �� 7 � 7 ������ � �� ��� �� ������ ������ ��� �� � ���� �������� ��� +� ������������ ���� �� � � ��� �� ��� ��������������� � ��� ����( /�� ��� �������� ����� �� ��� ��������� � ��� � ���� ����� � ��� ���� .��� �� ����� ��I ���� �� ��� ��� ���� ��� �� �� ��������� ����� �� ���� ���� ���� ����� ��� � ���� � ��� �� �� �� ������ ��� ����� ����� ��� ���� ���

�� � ��� �*5 �� �������� !���� !��� !��� !��� !���� ���� ����� ���������� ����� ����� ������ �!��� �!��� �!��� �!���� "� ��� ��� �* ��� �����T !�� ��� �� ��T�!��5 ������� ��� ��� � ��� ����� ���� �� �������� ������

�� � ���� � � �� N (N�� ��� ��� � < ��� "� �� �� � ������� ����� � ���� ���� '���� � � � �� ��� � � � � �� ������������ � � ������� �� �� ������� -� ����������� �� � ������� �%��� A��������C < ' ��� �(� ��� �� '(N�(%��� A������ ����C$ < '$��� $�(�� � ��� ���� �� ������� ��� ������ ���� ��� ������� ��� �������� ��� �� � ��� ' ����5 ����� ����� � ��� ���� ����� �� �������� � ��� � ���.��� ��� �������� � ��� � ��� ������ ����� ��� ������� ����� � � ' ����������� �� ������ ���� -+ ���� ������ � ��� ��� �����&��� �� ( � � �����

B� �������� ���� �� ��� ���� ��� ���� ( < �4

$�$�$� ������ ���

� � � ��� $� � � '��� � � ��� $� � � '��

� � '�

� � � ��� $� '�� � �� � � ��� $� '�� � �

�'� � �

$�$�$� ������ ���

� � � ��� $� '�� � '������

� � � ��� $� '�� � '������

�'� � '���

� � � ��� $� '������ � ' N�(�� � � ����� $� '������ � ' N�(�

�'��� � N�

/�� ����� ���� ���� �� �������� � ����� ��� ���:�� ���� �� ���� ����� ��� ��� � ������� ��� ��� ���� �� �� ���� ����#�� �

������� ��� .��� ������ ���� �� ���� �� ��� � ������� ����� ��� �� $� $� < �� ������ �� �� ��� '� � � �� � ��� ��#�� ��� ���� ����F� ��#� ��� &��� #�� � �� � ��/��� ���� ���� � ������� �� B������ �� ����� ����#�� � ������ ���� �� ���

��

Page 52: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*: ��1��� � �C������� '�!� �

� ������� �� ���3�� � '�9�1(� �+8!�8*� "��� � ��� �������� ���� ��� �� ��������� � ��� � ��� � ���� � � ������� ���� � /'�(�;

�� /��� � ���� ��� ��������� �� ���#������ S������ ��� ������ :���� ����� ���

�� '�91+(� 198!9��; � �� �� � �� ����� 3��� �� ����� ����� �� �������� ��� ���#��� *%��� .��� �� ��� ��� &#� � ����� �������� ���� ��� �� � 7% �� ����������� �� ����� �� � ��� ��� ��������� '�� �� ������� ���� ���#� "����� ��� ��� �������� ���� � �#�� ��� �'7( �� ���� ���� �7 ��� ��� � � A������C �� ��� �� �9���(

� �� '� N �(%��� ����� ��I ���� ���� 6 �� �� ������ � ��� ������� ������ �� �� ��� ������� ���� ���4 /��� �%��� ����� ��I ���� � ���� ���A� A���� ��� &�� �� ����� � ���� � < A�� B�� ��� ���

� ����A� A�������� ����

��� ���� ���������� �� � �� '� � �(%��� ����� ��I ���� ���� 6 �� �� ������ � �������� 3 ���

'���� 3 ����� ( ���� ���������� ��� �� ��� � � �%��� ��I ���� � ����� �B� B���� ��� �� ����� � ���� � < A� < C� < B�� �� ������������ � � 3 ����N �� ��

� ����A� A����'�N�(C� C�����B� B����'�N�(��� ����

-�� �'�( ��� �'�( �� ��� ������� � '�( ��� '�(� �� � � �� /�� &��� ���� ������� ���� �'� N �( N ��'� N �( < ��'� N �(�'�(���� ��� �� �� ��� �� ��� �������I ���� �� ������� �� �'� N �( �� �� ����� /�� ���� ���� ��� ���� �����'�N �( < ��'�N �('�N �(�'�(�����

� "� ��#� �'� N �( � ���'�(���� ��� �� ���'�(��� �� ��� � ���� � '� N �(%�������� ��I ���� ���� ������ �� ���������� � �� >��� �'�( � �

����

��� � � 7� ��

��� ��� � ��������� �� �� ��������� �#�� ������ ����� �� ���� ��� ���#� � �������� ��� ��

�'� N �( � �'� N �( N �'� N �( ��� �'� N �( � ����'� N �(�'�(��� �� � � 7� >���

�'�N�( � )�� � ����,'�N �(�'�(��� �� � � 7� ��� �������� � ���� ������� ���� ����

������

�'�(� �� � �'7(� ��

�����

��� � �7

*8

�� ������N ��

�� ����' �+*�*

:��� @� G� J ����� !���� ����� �� '�9��(� �8+!�8*5 ,� ,������ �� ��� 0� ��"�

� '�911(� 89!7��; 2 � ��� �� � #�� � � ���� ����� �� ������� ���� -� ,��� ' �� �������( ��� �6�� ��� ���� �� �� ( ��2� � ��� ��� �� ����� �� � �� � ��

�� ��� ���� �����������5 ��� ��� ��������� �� ��� ���#� � �������

� �� �'�� �� �( � ��� ��� ����� ���� �'�( �'� � �(�� ��� �6�� �� ������� �����'�� �� �( � �'�� �� �'�((� ��� �� ��� ��#���� � � .��� �� �� � .��� ��� /� � ������� ����� ��� �'�( < �'�� �( ���

�'�� �( <��

� �'�� �� �( � �����'� � �(� � �� !� � � 0���'�� �� �'�(( < �'�� � N �(

B������� �'�� ��( < �� ���� �'�( ��������� 0�� <

����� �

'��( < �����

��� )�'���(,'��( � �

�����

��� '���('��( < �'���(�

���� :���� ����� ����� '�91+(� 198!9���;

�� /��� ��� >��������� ���� * ��� � � � � � �� ��� '�� � �(% ��� � ��� ��� ��#���!"������ ����� ��� �� �* � �*�� ' �� � � ��� ��� ������� �� �������� ��� ���� � < � � � < �� � � ���� ��� ������������ ����� ���� � � ��(

Page 53: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� *0

�� ��'�N�(��� ��� �����

�� '�N�(�� �������

�� '�N�(����

�� ��� ��

�� ��

�� "� �� ��� �� ���� � � + ��� ���� �� ��#� �� �%��� .��� �� ���� ��������� ��� 0� < ��'���� N (���5 �� ���� � ���� � �� '�N �(%��� �� ���� ��������� ��� 0�� < ��'���� N (�'� N �(�� �� ���� �� '� N �( � �� �� �� �� /����� J���� < �������'�N �(�N �� ���������� �� ���� � ����� �� < 8�'���� N (��� ��'����N (�'�N�(�� : <�; ��� � ����� �� ��������� � ����� /��� �� ������ ���� � ���� �� ����������'�N�(� � 7� ������� ���� ��� ���� �� ���� �� '�N�( � ������ < �������'�N�(��� ��� �� < 8�'����N (�����'����N N�(�'�N�(��: <�;��� ���� ���� �� '�N�( �� ������ � � :��� L� L������� �������� 0� ��"������� �

'�99*(� ����� � ^@�7 '9 ���� �99�(;� /�� ���� ���� � ���� ��� �� � � � G� E�@����� ��� ,� ��� :���� ����� ���� '�91�(� ��!�+;�

�� /�� � ���� � ��H����� �� �������� �� ��� �������� ������� ������� �� ����� 0� N � � �N 0����

�� $��� ���� /����� J ��� �� ��� ��� ���� 0� < 0��� �� ��� � � ������ ��� � ��� ��� '�� 8� *� 1� ��(� /�� �������� �� ������� 7� ��#�� ���0� < 0��� � �� � � �� ���� ��� � '*� ��� �8� �1� ��� �*� +�(� /�� ���� � � ��������������� ��� ������� � ������� 7� ��� �������� ���� ��������� �� �������� ������� �� 8� � ����� ��� ���������� �������� ��� ���� �0� � 0�� �� ���� 0� � 0� �� ������� �0� N �� 0� � ���� � ���� ��� #�� �� ��� �$�� � $��� ��� ��� ��� �� ��� � ���� � ����� $� ���� '��� � ��(� "� � �� ��#� '���� � ���( '���� � ���( '�� � �( �� ��� � � �2 � �� ��� $F� ��� ����� � ������ #������ �� ��� ����� ��I ��� � �� �%��� .��� ������ ��� �� ��� �� � < � ��� < ��� :��� �� '�97+(� 8�15 � '�9�*(� 78�;

�� :���� �/���� ����� 0� �� '�971(� 1�7!1�*�; /�� ��� ������ ����� ��I ���� �����

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

� �������+�������+ �� ����+�+�+�����+� �� �����+��+�+����+ �

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

1 ������+�������+� 8@ �����+�������+�� 89 ������+�������+� 8

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

" �����+�������+�� 1. �������+�������+ 1D ������+�������+� �

>��� � �� ��� ������� �� 'B��� �+'�((� " �� �������� .��� ������ 'B��� ��'�((� ���. �� ��� ����������� �� 'B��� �+'�((� ����� . �� ��� �I �#����� � ��� �� ���'8� 8( .��� �� ���� ��� ���������� � ������� �1� ���� ���� � � ����������������� � +�� �8�� � ��� �*11 ��H����� ����� ��I ���� �� ���

��������� '��� ������� ����+!��(� ��� 7%��� .��� ��� ���� ��� �+��*�7 ��H������I �#����� �������

�� "��� /��� � ���� 81� #������ ��� �������� ������ ���� � ������ 1� 9 � " ����� ���#� � ������� "��� /��� � ���� ��� ����� ��� +18 �������� �11 � ������� ������� #������ � ������ 9 ��� "� /���� ��� *8 ������� � ��0� 9� ����������� + #������ ��� @ ��� * ��� �5 �* ������� � ��0� +�� ��� ���� *��� . ��� �8 ��� �5 ��� �* ������� � ��0� 18� ��� ���� �� ��� 1� �8 ��� ��81 ��� D� "��� /��� + '� /��� 8( ���� ��� ������ ����� �� ������� :���������� ���9��+9� � ��� 8%��� .��� ����� ��� ������ �� ���� �# �� �������� ��6���� � ������#� S����� ��� ���#������ ���� ����� ���� '�91�(� +�9!++�� ��#� �6�� ������� /��� + ������ ���� � � � ���� ��� ����� � �%��� .��� ��� �� ��� � � +�; � �� ��� ������� � ������� � ## ��#�#�� ��� ������� �� �#�� � ���� ������� ���� � ������� ���� ��#� ������ �#�� � ��� ��� ����� � # ��� � ���&� E

Page 54: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

6. ��1��� � �C������� '�!� �

���� ��� ���� �#������ �������� 2 � ���� � ����F� ��&�� � .��� ��� ��� �� �� �� ����� ��� � � E ��� � ��

�� �� � �� ����� �� ������� 71� � �� ##� ��#���� ���� � � � ��� ���� � ����� ���� � N � ����� �� �� /�������� �������� ���� ��� � � '4-( � � ���� � ��� ������������� �� ����� ����� ��� �� � � 7 �� ���� ������� � ������ ������* ������ :,��� @������ !������ ����� '�99�(� +�9!++��; ?� ��� ���� ����� �8%��� .��� �� ���� �� ����� ��� �� �� ������ ��� � � � � ������ �5 �� � < ������������ ������ ��� ����� ����� ��� � �%� � ���

��� O�� ��� ���� ��� � ������� 71 ���� � < ��

��� /�� ���� �� � ��������#� �� �%��� �� F < '��� ��� ��� ( ���� �� �%��� ��G < '��� ��� ��� (� �� ������ ����������

+ < '������ � ������ � ������ � (� �� < �� N � � �N ����� � < �� N � � �N �����

����� ������ �� � ������ ������ � ���� ���� ��� 5 �� ��#��� � ��� ����������� � F ���� �� < �� �������� � ��� ���� ������� � G �

�� � �� ��� ������ � ������ �� � ��� �������� � ���� ���� ��� � ��� � < �� � ����� ���� ��� �� + ���� �� �� '� N �(%��� .��� �� �� � ��� � ��� ��� B� �� ��#����� �� '�� � ��( ��� ��� � '�� � ��( ��� �� �� � � ������ � ��� ������ N � < �� � ���� < �

�05 ���� ��� < � N �0� � 0 �� � � ������ � ���

'�( -�� � < ����5 ���� � �� � ������ 1 � �� ��� ���� � ���� ��� � �� � ������� � �

�('�(� � �� ��� ����� � �����'�( -�� � �� ��� ������� �� � ���� � ��('�(�'('�(N ('�((� �� ��� � < ��� �

��� �� < �'� N �(����� � �������� � ���� �� < ������� ��� � < �������� ��� � � � ������ �� �� ��� ���� � ����� �� ��#� ������ � �� N ('�( N �� ����N� � ��('�(�� � ('�( N ('�(� �� �� �� �� �� ��� ����� � ���� �� ��#� ����� � � N ('�( N �� ����

N � � ��('�(�� � ��('�(�)��('�(�'('�( N ('�(( N �,

< ('�( N ('�(� �'('�( N ('�((�

��('�( N �'('�( N ('�((� ('�( N ('�(� �

��� �� ('�( � ('�(�/�� ���� ��� ���� ���� ��� �� ���� ��������� ����� ��� ��� ����� ����

����� �� ��� �� �� � .��� �� � ��4 -� .����� .� ,� -������� ��� 3� $������&������� ����� � '�911(� ��9!�9��

��� ��� �� � ��� 8 �� � � � � ���� ����� ���� �� < 8 ���� � �� �* < �7 ���� *8 < 8� � � �� �7* < �++� �� ��� ' �� �� �� �� �( � '�� �� 8� *� 1(� /����� � < �� �� � ���+� ��� � � �� ��� �� � � N 8�� � �� � '/��� ���� �����������0�� ��� ����� � ������� *��(

�� '�( 3�� ������� �� ������� ������� ���� ���� ����� � � �������������� ��������� ������� � � ����������������� /� � ��� ���� ����� 5� 5���� � �� �� �����%��� �������� ��� �%��� #������ � �#�� ������� ����� �� ��������� ���� ������ ��� ���� #������� /��� ������ �� ��� � �����

'�( -�� H� �� ��� ���� ����� ���� ����� � �� � �� � ��� ��� ��'���( �� ������� ����� '��(H� � �� �� < ��N�� ���� ��'���( ����� � �� ��� ��� � �� ��������� � �� � �� �� ��� ���� #������ �� � �� ����� ��� #����� � � ��������

�� ! �� ��� ��� ) ��� � �� ��� ��� 5'!( �� ��� ������ � ��� ���� ������ H� ����� � ��� � �� �� *!� �� ��������� ���� � � �������� ����5 �� �������� �� � < 7

��

Page 55: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� 6

�� ��#� 5'��� ��( < H�H�H�H�H�H�� /��� ��� .��� ������X'�� � �( < 5'��� �(��'�� �����(5'��� �(H�5'� �(

������ � *� � 1 ���� ������ ���� ��� � �� ��� ����������� '� �����(�,��#��� ���� ���� ������ �� ������� � ��� �%��� #����� �� ��� � �� ��� ��#� ������� �� ��

"� ��� ��� �� ���� � � 7� -�� � ���� �� ��� ����� ��I ��� �� �� �%���.��� �� '��� ��� � �����( ���� ��� � �� � ������ + � ���� /��� ��� ��� � ���� ���� ������ ��

X <����������

)X'����� ��� �����(X'��� ����� ���(,

�� '�� ��('�� ��( '����� �����('����� ��( < '����� ��('����� ��(� � �� �����&����� ��� ������ � '�(�

,��#��� ��� ����� '5'+(X(� ��� � � �� � ������ � � � � ���� ������� ���� #����� �� 2� ��������� ����#�� �� ����� 5'��� �( � 5'� �( �� X �� ���� ������� �� ����� �� �� ��6 �� ��� ������ � 5'+(X� �������� ��N '���� � �('���� �*( N�'���(�N�'���(� �� ��� �������� �� � � �5 �� � �� �� ������� ��� ������ � ��������� ��#���� ���� �� � ��N '����� �('���� �*( N �'��� 7�N *(� �� ������� 7����!���

'( /�� � �� ('�( � � � 8 ��� N 1 �� �� ��#�� �� � � 7 �� ������ B������ ����#� ���� �� ���� �� 7 � � � ++ �� ��� ������ � �������� *�!*+� /��� ������#� ���� �#��� ������� � ++ �� �� ������� �� < �N � � < �N�N�� ����� � � ��� �����

� < �� �8 ����N ���� � � ��� �� �� � ������ ����� �� ��� ���� ��� �� ���� '�( � �� #����5 � ����#�

(' ( � ('�N �( � ����)('�(� �� �, � �)�� �8 ����N 1(< �N �N �� �8 ��'�N �(� � N ��N 1� � 8 �� N 1

����� � < 8 ��)���'� N �(, � �� :/ �������; @� ���#� �� � '�( ��#��� �� ����('���8( � ������� �� ��� ����� ��#���� ���� ����� ����������� ��H����� �������� '��� �������#�����( ��� �������� ?�� � ���� ��� ��� ����� ��I ��� �����+�8��+��8�8��+8��8��+�+8��+� ��� �� �� ��� � �� � ��� ������

��� '�� ��� �� ,��� ����( ?�� � ������ ����� ��I ��� �� ���+87*������+�8+7*7�*������+7+8*�*���7+�8��+*�7*����+�8�*��*7���+8��8*7*�7�+���8*87+�7�����8+7+�*�8��+*+�8*8��+��+7*8����+��7�78������7*8�7��8�+*78�7��+*��78�*�7*�8+��7�*�+�7���8+�7�*�8+���*�87��8��7�*+78�*��+7*8�7��*�78+��8��+�*�8�*�7�+8��7�8+*��8+�*8+�8�

��� -�� ����� < ��� ��� ��� < ���� ����� '��� ��� � �����( �� ��� '�� �(%��� .������ :��� @����� ��� ���� ���� ����� ���� '�91�(� ��!�+�;

� � Z��� /�� �������� ��� �� ������� � ���� '�� �(%���� �� ��� .��� ������� ����� ��� � �� � �� � � � ��� ������ '�� � +(� B� �������� ���� � < + ����� �� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� ���� � ���� ���� ����

��

Page 56: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

6! ��1��� � �C������� '�!� �

��� '�( "� ���� ��� #����� ��� ����� �� 3 ���� ���� ���� �� ��� ��� ����� �������������� �� < �� �� 5 ��� ����� ������ ��� �������#��� '����(�� '����(��'����(�� '����(�� '�����(�� '������(�� � / ��#� ���� �#��� �%� ��� ��� ������� � � 3'�( � �� ���� � � � � �� ��� � � +5 ��� 3��� )'���� ��(�, <'���� ��(�� ����� �� < �� �� �� � � � � �� < ��� �� < �� �� �� � � � ��� < �� �� �� � � � � ��� �� < �� ���� � � � �� � 8�

'�( -�� 3'�( < ' ������(� ����� �� < �� ���� ��: � �; ����:�� �� � �;���� � �� '4,( ��� '44(� �� �� ���#� � ���� � �[ �� ��� ���� ���� ��� ������� ������� � � �� ����� /��� ����� ��� �8 �� ���� �� � < 7 �������� ���� ������ ����� �������� ���� ������ "��� � < * ����� ��� 8*�9+7 � ��� ���� '������� �� ��#�������� ������������(� "��� � < � ��� � ���� �� � �� � � ������� ��� #��� ������� ������� ���� ��� ���� � ���� � �%��� .��� ������

��� � ���� ���� ������� ��H��� ��� ��� �� ������� �� � �� � � � � � �� /����� < ��� �� '66( ��� '4=(� $� 3I� '46( ����� � ���� �� < �� �5 ��� �� � � � �� ��� ��#� �� < )' � �(����,���� �� '6-(� /� � �� < 5��

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

��� #�� � � '�� �(�� �� �����#�� �� ����� '$������ �� ���� ������ ��� ���� ����� ����� � �� �� ������ ���� � ��� � ��� ����� ���� ���� ����(

��� /�� ����� ��I ��� �� �����+�8+�����+8���+�+�8����+�+�

��� -�� I�� < *��� ��� ����� ��� ��I ���� '6)(� '6,( �� !� ��� J�� /� � !� <

*��I��*�� ��� J� < I��*��I�� � �� �� ��� ��� ����5 ��� �� ��#�

!��� < �*�� �I�� �I��� �*

��� �*�� �I�� �I

��� �*

��� �*�� �

J��� < �I�� �*��� �*�� �I�� �I

��� �*

��� �*�� �I�� �I

��� �

����� � < ��� ��#������ � ��������� ������ 6��� �� ���� ������� ��� ����� ��I ����_� ��� @� � !� ��� J�� $������ �� �� �����

_� < K� �� K� �� K��� ���� K�� @� < L� �� L� �� L��� ���� L��

����� ��� K� ��� L� �� � ������ � ������ ��������

�� �� ��� ���� ��I ���� ���_��� < K� �� K� � L�� ��� L�� � K� �� K� � L�� ��� L�� �

@��� < L� � K�� � L� �� L� � K�� ��� K�� � L� �� L� � K�� ��� K�� �

B� �������� �� ��#� _� < � � � � � � � ��� @� < � � � � � � �� �� �� �������� ��� �F���� �F� � ������� ��� ���� ��� ��� KF� ��� LF�5 ���

_� < � � � � � + �� �� �� �� �� + � + �� < � � � � � + � � � � � + � + ��

@� < � + �� + � � � � � + �� �� �� �� �� < � + � + � � � � � + � � � � �5

���� ��K� ��� ��L� ��� ������ 3������� ��#� ���� ��������� �� ��� ���� �����/� � �� �� �� �� ��� ����� ��I ���� �� ����� �� ������ >��� $: ; < ��

�� � � � �5 �� < �� �� < A�� ��� �� < :� ��� A� ��� ���������;� �� � � � � �������� :��������0��; ��� �� �� $:�;� �� �� � �� � �� � ��

��� : �#��� ��; E����� ������� � ����� ���� �� ��� ��� ������ ��� ������ �� �� ��� ���� #�� � � �5 ���� ��� �� �N ��

��� :@����=; �� � �� � ������ ������ ��� ������� ����� ��I ��� _� �� �� ����� ��5

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

�� :��� �� ���; ��� $�:�; < �� �� ��� $�: ; < $:$: � �;; �� � � � ��

�� :E������ � ��#����; ��� $: ; � $�: ; �� � � � �5 ��� �� � ���� �� � ������� �� � ��� �� � � � � ��� �� @�� �� � @��

��

Page 57: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� 6"

�� ��� ������� ������ A/������� �� H'� ( ����� �� < �C �� �� �����#����� �� A���� < �� ���������� �� H'� (� � N �� � N �� ���� �� �< ��C

��� :E������ � �� �� _����; ��� � � � � � ��� ����� � ������ : �#��� �; /������� ��� � �� ��� �

�� � � ����� �� < �� /��� � � �7 ��

�� � ��

��� : �#��� ��� ��; ��� ��� � �� � ��� � �� � N �� � N �� /��� ��������

��� � �� ��� ��� � � ����� �� < �� /��� ��� �

�� � �� ��� � �� � N �� /���

�������� ��� � $:��; ��� ��� � � ����� �� < �� /��� ��� �

�� � $:��;� �

�� � ��

� N �� � � � N �� �� �� ����� �������� ��� � $:��; ��� ��� � � �����

�� < ��

�� :J�� ���� _���=; �� �� � �� � � �*� ?�������� ��� ��� � �� ��� � ��� N �� � N �� � � � N �� ��� ��� �� � ���

�� :B����� _����; ��� ��� � �� ��� � �� � N�� /��� �������� ��� � $:�:�;; ���

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

��� :E������ � �� �� @����; ��� � � � � �� /������� ��� � �� ������� < �� /��� ��� �

�� � �� � N ��

��� : �#��� �; /������� ��� � $:�� ; ����� �� < �� /��� ��������� �� �� � �5�������� ��� ��� � �� � N �� � N �� � � � N ��

� � : �#��� ��; /������� ��� � �� ����� �� < �� /��� � � ��� �� �� � ��

��� : �#��� � ��� �; ��� ��� � ��� � N �� � � � N �� /��� �������� ��� � ������� �� < �� /��� ��� ��� � �� � N �� /��� �������� ��� � $:�� ; ������� < �� /��� ��� �

�� � $:�� ;� � N �� � N �� @�� �� � ���

���� :B����� @����; ��� ��� � �� � N�� /��� �������� ��� � $:�� ; ����� �� < ��

/ �������� ��� ����� ��#���!"������ ���� �� ������ ����� �� �� �� &��� ��������_�� ��� @��� ���� � �#�� _�� ��� @��� O���� ����� ������� � � ������ �� ���#� ��%�� �� ���� ���� �� ���� � ���� ������ #�� �� � � ���� #��� ������ �� �������#������ ��� ����� � ��� �#������

�� �� ��� ����� ���� �� ��� � ����� ��� �� �� ��� ������ � �� ��#�

�����

��

� ���N )' N �'��(( �� �, � � � �

���

��

� ���N )' N �'��(( �� �,� �

/������� ��� ����� � ������� ������� #������ � �������#� ������� ��� N ��� �)

�������

�N�����

�N�������

�, � �� /�� ����� � #�� �� ������������ + � ��������

�� ���� �� ������������ ���� :/��� �� ��� �� � ����� ����� ��� �������� #�� �����#���� �� ��# ������� � ��� #������� ���� ��

�������

��

�� ��

��� ������� ����!���;

�� /���� ��� ��� &#� ����������� ������� �� ����� ��� � ���� � �� � �� ��� ��� .��� ������ /�� ����� ��I ���� ���

� � � + � � � 8 � � � + � � � � � � � + � � � 8 � � � + � � � '�(

� � � + � � � 8 � � � + � � � � + � � � + � � 8 � � + � � � + '�(

� � � + � � � 8 � � � + � � � � � + � � � + � 8 � + � � � + � '�(

� � � + � � � 8 � + � � � + � � � � � + � � � 8 � + � � � + � '�(

� � � + 8 � � � � � � + � � 8 + � � � + � � 8 � � � � + 8 � � '+(

��

Page 58: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

6* ��1��� � �C������� '�!� �

��� �� ��� � ����� �� �����%����� � �� ��� '� N �(%��� �� ���� ���� ���� ���� �������� � ������� ������� B��� �8'�( ���� � ������� ��� ����������� ���� �������� ��������0�� ��� &��� �� ��� � ������� �7 � �� '�N �(%��� ��

��V���� ��V��� ��V�� ��V��� ��V� ��V���� ��V����� ��V�

����� V �� ��� �%��� ��I ���� �'�(� � �'����( ��� V� < V �'�(� V�� < V �'����(�V��� < V �'���� N �(� : � �%��� �����%���� ������ ���� �� ������ � .��� ��� ��#���6 �� � � ����� �� ���� �'�� ����( < �� ��� � �� �� ��� � � + �� �� �� ��������� �� ���/ ���� 4�/��� ��� 5���� � '>������� ������4 ����� � ,���� �����������917(� *�9!*++�;

��� @����� ��� ����� '����� � ��( �� �� ����� � �������� #�� �� '����� � ��(� ������ � �� � � �� ���� >�� ��� �� � '�� N �( ���� �� ���� >8� �� �� < �� �� ���� >7���� �� � '�� � �( ���� � '� � '���� '��� � N ��

� � B� '7-(� ���� ���� ���� �� ��� � ���� � ����� ��D���� ��� ���� ��������� � ��� �� �� ������ ������� � ����� ���� ��� � ������� � �� ���>���� �� �� � �� � �� ������� � �� �� � � ��� �� � ������� � ������� �� � ������������� B ��������� �� �� < �� � � �� � � � � � ������� ��� ����� �� � � ��������������� �� ���� ������� ��� � ��� � �� �� �� ������� ���#��� ��� #�� �� ��� � ���� ������� �� '7-(�

B� '7)(� ��� ���� �� < ������N �� ������N�� N'�� ��(���� ��N����

'�� � �(5 ���� �� �� N ���� N � � � � ��� '7)( �� �#� ��� �I �#����� � '7-(��� ��� �� ��� .��� �� �� ������� ������ '����� ���(� ���

��'�( <������

�����

���

���

���

���

����

����� � �� ��#�� �� '6<(� /��� �� < '�� � ����( ���� � ��� �� ������� ����������� �� � �� ������ �� � ���� ����� �� �� ����� �� '�� � �(� /�� ��#����� ����� ���� ���������� ��� �F� ��� ��� �� ��� .��� �F�� �� �� < '�� N ���� N���� N � � � ( ���� �� ��� ������ ��� ���� ��� �� �� � ��#��� � ���� '�� ���������� ��� �� ��� �I ��(� 2 � ��� ��#���� ��� � ������ ��� �� �������5 �� �� �� �� ����� ���� ��� �� ������ �� < '�� N ����( ���� � �� < ������ N �� �� < � � �� � �� �������� ���� �� < ��

:@�D���� .��� ��� �� ����� � � � ���� ����� �� �� �#�� B���� �� �6�

����� ��� '�97*(� �9!1�5 �� ����#�� '7-( ��� '7)( �� ��� ��� ���� ��� �� ����I ��� ,� ��� .��� ��� ���� ������� ����� ������ ���� ��������� ��� ���� ��G���� @����� � �� ��� '�9+1(� *98!*9*� � � ���� � ��� �#����� ��� ���5�#����� ��� ��� ���� ��� �� ��#� � ��� #�� � � ���� � ������� �� ,��������� ���� ��� ���� � '�9*+(� ��!�1�;

��� '�( /�� ���� �%� ��� ������ ��� ���� < ���� � �� � �� �� �� ���� ��� '�� � �(��� �� ���� < �� �� ���� ������ � �� � ���� ��� &��� �%� ��� '�� �� � �(�:���������� ��� &��� � ������ �� � �� ������� L �� ��6���� � ��� ������� �� ����� ��� �� ��� ������� ���� �� �� ������� #������;

'�( /�� ���� �%� ��� �� '������� �� � �( �� ��� ��� ������ ���� ���� < ��� � � � �� �� ��� �� �� < �� � � ��� �� < ���� �� � �� �� @ � ��� �� $��� $

��� ���� ��D���� .��� �� ���� ������ �� < 2� N ��

�� /�� &��� ��� ������ ��� ���� ��� '�� 8( � )�� '8 N �( ���, �� ��� ��� ��'�N 8( ��� �< �� � �� ��� ��� �� ��� ���� ��� ������ ��� ���� ��� '�� 8( �)'�N �( ���� 8,�

��

Page 59: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� 66

�� /���� ��� �� 8%��� .��� ��� '��� � ���( ��� '��� � ���( ���� #�� ��� ����� ���� 8% ��� '������� ��� ��%����� � ������ � 2� J� >� ��� � �� ������� 7* ��� .������� �������� � ��� ���� ���� �� ����� ���������( /������� ���� �*%��� �� ���.��� �� �� �� ��� ��� � � ������� ���� '����� ����� � ������ ������ � �����(�'����� ����� � ������ ������ � �����(� '����� � �����(� '����� � �����(�

�� � ������� ��� �� �� ��� ���� ��� ����%���6��� �%��� .��� ��� ����� ����� �� �*� +�� *8� ��� :�"���������� ����� ���� 7��"�� �� '�97*(� �+!�*�; G� ������� 2� �������� :!������ ����� � '�91�(� �!�*; ��#� ��#�� ���� ��� ���� ����������� �� ��� �#�� #�� �� � � � 8� � � � ������ ���� ��� �� ����� � ������� ��� ������� ������ '�� �(� ��� 1%���� �� ��� �� B��� %� ���� �� �����I ��� ��������� ��� � '�� �(� �� ��� &��� �#�� �� �������� ��� ���� ���� � ����� ������ �� �� ��� ������ ��� ����� ��� ���� ��� �� ��� ����� ����� ��� /�������� ���� �� �� �� ���� ��� ����� � ����� /�� ��������0���� � � ����� � ���� ��� ���������� ���� +� � � ������

���* ;> ��� �� ���* 2> ��� 2� ���* �> ��� ;�

���* 8> �2� �� ���* 6> �2� 2� ���* 4> �2� ;�

���* <> �;� �� ���* 5> �;� 2� ���* A> �;� ;�

���� ����

:/�� ����� � ���� �������� � � 00�� �� �� ��� ��� � � �������� 8 !��"�����

��99��� �� G���� �� � ��� G�� 2������� '�998( ���� � �%�� #����� ��#�� ������� ������� ���� �� ����� �� � �17� :���� ���;� ��� � ����� *%�� #��������� �� ,������� �� � �911 :���� 9+;� �� � ��� ��� � 8%�� #����� ���� ������� �� 3������ �� � �118� >� ��� � �� �� ������ �� >���� $#��F� �������� ���:���� ��� � ��� ��99��� '�171 � �179( ��� "� >� ������F� ������ �����������

�������� ��� ����� '�1*�(� �� ���� �� �� >������F ����� � �197� ���� ��� ����A,��#�� � ���� E 00���C J����� ���� ��� ������ � ��D���� .��� ��������� � ������ � ,����� .������� ����� � � �� �9���;

��

Page 60: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

6- ��1��� � �C������� '�!� �

� 2� '7-(� ������� K ������

��M � V�V� �� ������ �� (�)K ���� �

��M, < K��

����

��M �� ��� ��D���� .���

�� �� ������ '�� ��(� "� �� �� ��� ���� ������� K ����������

���

���M � ��� 'V�V�(�V��

��� V� 'V��V��( �� ������������ �� (�)K ���� ������

���

���M, < K��

��������

���

���M �� ��� ��D���� .��� ��

�� ������ '�� ��� ���(� ��� ������� 8��!��� ��� ��� ��� ��� �����%����� ���

�� �� � ������

���

����

�<��� � �� ���

���

�� � �� ����

�� �������� ��� ��D���� .��� �� �� ������ '��� ���( �� '�� ��� � �(�� � ��'�� ��� � �(� :�������� �������� #����� �� '�91*(� ���!��7�;

�� -�� V�� �� ��� ��D���� �%��� .��� ����� ���� �� �� ��&��� �� V�� < � ���

V������ < '�� �� ��� �(�V��� � � �/��� ���� � �� ��� '�� �� � �( � '���� �� � �( ���� � �� �#��� ������� ��� .������� `�� ��&��� �� `�� < + ���

`������ <

�'�� �� ��� �(�`��� �V

�������� �� � �� ��5

'�� �� ��(�`��� �V���� �� � �� �#���

/��� ���� ���#����� ��� � ��� '� N �(� � �� ��������#� ������� �%� ���� �� �������'��� � ��( < �� �������� ���� '�� � ���( ��� ������ ���� '�� �� � �(� /��������� ��&���� .��� ���� �� `��� `

���� `��� `

���� �

�� /��� �� ��������� ���� � �� ��� ��� �� ��� �%� ���� ���� ���'����� � ����( < ���� �� �

�'+� N �( ���� �� ������ ��� �

�'+� � +( ���� �#�� ������� "��� � < �

�� �� �� � ������ X�� X�� X�� � ����� X� ����� ������ ��� '�� � � �( �'����( ���� � � �� B� �#�� #�� �� � � � �� �� J� �� � ���� � �%� ���� ���'�� ������ �� ���� ��� �� ���( � '���������� �����(� �� �� ��X�� 'J�� � J���(� 'X�� �X�(

��J� �� '� N �(%� ���� ���� ��� ���� �������������� �� ��� � �� �������

V�V� < '������ � �������� �����

��� � ���

��� ���

��� � �����

��� �����

��� (

:��&���� �%���������� .��� ����� ������� ��� ������ �� �������� ���� &��� �%��� ��� �� 3� S\�0����� ���� #������� �� ����������� ���� �������� � ,����%������ � � '�0����4 �9+1(� �*+!��+�;

� �� � �� #���� ��� ��� � ������� ������ � � �� ��#���� ����� ������ ���� '�� � �(��� ��� ����� � ��� ����� �� ��� ����� ��� ��������0���� ���� L�� '/��� ��D������������ ��� �� ���� ��� ��� � ������������ �� ������� L �����(

�� '�( -�� M� < �� M� < �� ��� M��� < �M����� M�

� � /��� ���� ��� ������� �� ��� ���� ������� � M�

��� �� ��� &��� ������� � M���� ������ � �� �������� ��� &��� ������� � M�

� �'�( .�#�� � ������ �� �� ����� ��� �� �� � � � �� �� &�� ��� � ���� ��

������� � < � :��< � ; ��� �������� �� �����4 �� � �� �� ��� �� < �� ����� ������

� 5 �� � �� �#�� ��� �� < � ����� �� � � �5 �������� ������� � �� � ��� ������ ���� ������ ������ � ����� � ������� � < �� /�� � ���� � ��� ��#�� ��� ��� � � � � � ��

��� ��� �� ����� ��� ���� ��� � ���� � �� ���� �� �#��� ���� ��� � ����� ������ ������ �� �� �� ��� ����� /� � �� � �� ��#� ��� + < �� /�� .�������� M� � ������� 19 ��� �� � ������5 ���� ����� ���� ' � (�� �� �

���� � ��� ���

��

Page 61: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� 6'

���� ' �(�� �� ������ ��� ����� ��� � 2 � M����

�� M��� �� � >��������� �� ��

�� ��� ,��� �� ����� ���� � < +� N ��

��� 3I �#�������� ��� �%� ���� ��a����a�� ��#� � �� ��� ��#� ��� � � �%� ����������� � ,��� �� ��I ���� � ������ �N�� �� �� ������ � ��� ���� ���������� ��� �� �������#��� �� � ��� ��� O���� ���� ���������� �� �� �#��� ��� ����M��� � ������� 19 ��� � ���� �� ���� ������� L� ���� ��� ������ �������� ��������� ����� ��� �� � ���� ������ '����� �� � &��� ��(�

��� :��������0��; ��� �� � '' � �( �� *(�+ ��� '� � �� � � � �� �� ���'� � �� (� � �� � � �� (� � N' �� +( ��� ���� ��� �� � �� � � � ������� �� N' �� +( � � ��� (� � � ��� � � � '/�� A������C �� �������� �� 8� 7� �� 1� �(

��� :S�����; S���� ��� �%� ��� '��� � ��(�

��� :���� $�; ��� � � �� $� '�� '� � ��

�� :���� ���; /�������� ��� �������� �� $ < �� ?�������� ��� �� � �� �� ���� � U* �� �� N $ �� �� �#���

�� :������ $N��; �� $ � �� ��� � � (�� � � $N�� (��� � �� (� � $N�� ��� � $�. � U��

��� :J����� $N ��; �� $ � �� ��� � � (���� (� � �� � � $�

��� :,��� $ �����#��; ��� '� � ' �� ��� ' �� � �� @�� �� � U��

/��� �������� �� ��� �� ����#�� �� � ������ ��� � � ���������� ��� ������������ � � � .��� -�� B���� @ ����� ��� J� 3� L� ��� ���� ������� ������� L ��������� ��� ��� � ������ ������ �� � �� � �� � �� �� ��� '������� ����( ���� '$� �(�:��� L� �� ��� @ ����� AJ����� ���� � ������C � �������; ��������0���� �������� �������� ���� ��� �� ��� ������� � ������ � ���� � �� ����� ������� ��������� ��� ���� ���#���� �� ,� 2� �I ���� �������� 0� ��"������� � '�99*(�^@��� �!�9�

��� Z��� ��� �� ��� ������� � ��� '���(%� ���� '��� � ����( ���� ��� � ���� � ���� ���� ��� '��� � ����( � '��� � ��( �����#�� ���'��� � ��( < � �� �%����� ��� �������5 ��� /����� ��+�8��.� ������� �� ��� � � � ��I ��� ��� ������� B �� �� ��� ���� ��� &��� �� �������� � ��� ����� ������� � ��������#����� �� ���� � ������� ��� �� �� ��� ��� ���� �� ��� � � �� "��� � < 8� ���������� ��� &��� 1� ������ � ��� ��I ��� W� ��� � � �� < � ���� �� ���� � ������ �� ��� ������ '<,(� :/���� ��� ��� ��&���� �%��� ��I ���� ���� &��� �� ����������� �� 2� �6� ���� �� ��� �� ��#�� ��� &��� � � +� ��� -� G� � ������ ��� J�"��������� ���� 4��������� � '�91*(� �77!�*��;

��� /�� ��� ��������� �� ''( �� � ��� ���� ����� � ��� ����� � ��� ������������� ���� ���� ����� /�� ��� ��������� �� ������� @ �� � ��� ���� ����� �E < 0� 0������� ����� 0� < '0� N �� N � � � N ����( ��� ��� �� ������� <# < �����

�� �� �� �� �� E� ��� �� < 0��� �� � � � �� ���� 8� < ���� �� � � � ������� 8� < '�������( ���� :/��� �� ��� ������ ���� �� ��� �%��� .��� ��5��� ������� �1�; $� �� 8� 8��� < �� �� ��#� ���� � � � � � � � ���� � �5�������� ����� �� �� ����� �� � � ���� �� � �� � �� � � ��� 8� 8��� �� ��# �� ������� � < '�� N ('�� � �(( ������ �� � � ( � �� �� ��� ���� ��� ����� � � ��#� ��H����� #�� �� � ��� ��� �� ��� � � � ��� �������� �� � �� � � �

��

Page 62: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

6: ��1��� � �C������� '�!� �

'�� � �( ���� � � �� : ������� @ �� #���� ��� �� � < � �� ��� 8 �< �� ��� ��� ,�� �� ���� ����;

�� ������+�8����+�8��+�8++88� '/�� ��������� ������ ��� �H���#��� ����������� ��� ��������#��� � ������+8 ���� +8� ������� J �� �� ��� �� ������� ����� < � ��� ( < �� � � �5 � � �� �� �������� � � �� �� #��� � '76(�(�� '�( -�� 0�0�0� ��#� ����� (� �� ( �� �� �� ��#� $ < � < (� � ( < $� ��� ����� ���#��� ��� ���� $ < � < � ��� �� < ��� ?�������� (�� < ��'$� �( < $����'$� �(�� 8�7��!')-(� ���� ��'$� �( < �� �� ��� ������ ��� ��� ��%� ���� 0�0��� 0������

���� � ��� ���� ������������ �� � � � $� � � � � �� � '�� � �(� ������� ������������ �� � � � $� � � � � �� � � '�� � �(�

'�( /�� �� � � �� ��������#� �� ��I ���� ���� ��� ���� ���� ��������� �������#��� �� N ( ��� �� � (5 ��� �F� ��� ��� ��� � ''( ���� �� ������ ����� ��� ��� �F� ��� ��� ��� � �'( ���� �� ������ � ����� �� � � � � (� 2�'7=( ��� ���� '�(� ��� ����� ������ �� ��� � (�� ��� �#��� ��%� ��� �� ���� ���������� � '�8(� �� � � �� 8 � (�

'( /�� ���� ���� J* ������ ��� ����#�� � '�( �� ���� � J+ ���� � � � ���� � �� < � � (5 ���� ����� �� ����� � �� ��� ���� ���� ����� ��� 6 �� ���� �� � ���� �� �� � � �� �������� ����� � �� ��� ����� ������� �� �� �F� ���� J* ��� ��������� � ���� � J� ��� ���� J+ ���� �� < � �� ��� ��� ���� � � � ��� � � �� � (5���� ����� �� ����� ��� �� ��� ���� ���� '���(���� ��� 6 �� ���� �� � ��� � ���� ������� /���� (� ����� ���� ��#��� ��� (� ������� ��%� ���� � '�(�

��� '�( /�� �� ������ !� < �� !���� < !�� < �!�� >� < �� >���� < � N >���>�� < �>�� 1� < �� 1���� < 1�� < � N �1� ��#� ��� �� ��� !� < ���� �����>� < �� �!�� 1� < !� � �� /� � !� N>� N1� < �� ��

'�( 3�� ��%��#�� �� � � ���� ��#�#�� ��� �� � � J%���#����� ��� �'�( � �@%���#������ �� � �� ���� ���#���� �� ��� ���� ��#��� 2 � ����� ��� ��������4 ������� @ ����� ��#�� ��� ''( ����� �� ��� &��� ���#���� ������� � ��I ��� ��5��� �������� ������� @ ����F� ���� � ��#�� ''( �� ���� ������� J �������#�� ��� �'( ����� �� ��� &��� ���#���� ������� � ��I ��� '��(�5 � � �������� ������� J ����F� ���� � ��#�� ������ ''( � �'(�

������� @ ������� � ��I ��� ���� �� ��� ��� �� ��� ���� ''( ��� 6 ��������� � ��I ��� ��� ������� J ������� � ��I ��� ��� �� � � ( �� ������ �� �� ��� 6 �� 6 ���� ��� J* � J+ ���� � ��#���� ��� �����

B�� ����� ����#����� �� �� �� �� ���� �� ��� ��� ��N�'�(N� ���#�������� ������� ��� ��%��#�� �� �� �� ( � �5 � � � ��� ������� ���� ������� J�� � < * ��� ��� J* � J8� 2 � ���� ( < � �� �� ��#� �� ���� �� ���� �� N +���#������ �� ������� ���� ������� @ �� � < �7 ��� ��� @8 � @��

��� '�( '����(� '��������(� '����������������(� ��� '��������������������������������(� /� � � < �� � < +� � < 9� � < �7�

'�( "� �#� ��� ��#� '���'�( < X'�'�( �� � �� � � � � � N �� /�� ����#�� �� '���' � N �(� ������� � ������� ���� @8 6 ��� � @� ����� �� ���� 8 <'�' �N���(� �� �� ��� '������� �� '���' �N���( �< �(� �� ��#� '���'�( �NX'�N�(�� � N � � � � ��N � N �5 �������� �� ��#� '���'�( � N X'� � �( �� ����#�� �� � �� �� ����� ���� '���'�( < � ���� �

� � �N � � ��N�� /�� ������ ��� ������� ��� ������� ������ �� ��� ����� �� ���� ��� �� � N X'� � �( X'�( ���� � � � � � N � � �

�N � � � � ��N � N ��

Page 63: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� 60

'( /�� ��������#�� ��� ��� 0�'��( < '�� '�( ��� 0�'�� N �( < '

�� '�(� �����

'�� '�( <

�'�'���(� �� � � � � �N�5'�'���(� �� �N� � � � ��N�5 '�� '�( <

�'�'�N�(� �� � � � � �5'�'�N�(� �� � � � � ����5

'�� '�( < '�� )� �� '�

�N �(,� '�� '�( < '�� )��� '�

�� �(,� /������� ��� � ���I �������� ������ �� ������ �� < '���� � �('��N �( N � � N � �� ��� 0� ���5 ���� �������� �� ��� /�� � ���I ��� '��(

���� ������ �� ������ � < '���� N �(' � � �( ��

� �� 8 < �� �� � < '���� N �('��N � � +( �� � �� 8 < +� �� �� < *� � < ��

'�( ������� J ������� � � �������� ��� ��� 0� ���5 ����

���� � �� 8�+ '����(4

'��'�(<

���0�'���(� �� �����N�50�'��+(� �� �N������N+50�'��8(� �� ��N+������5

���� � �� 8<+ '����(4

<

���0�'���(� �� ������N�50�'���(� �� ��N�����N+50�'��8(� �� �N+�������

'�( ����I ����� �� < �� N � N �: � �� 8� +;� ������� ��� �������� ����������� ����� � ���� � � ������ ������ � '�� '( ��������#�� ���� �

��� ������������ � '�� '(� ���� �� � �������� ��� ��� ���� �� �������� �� � � ��� �������� '�'�('�'�('�'�('�'�( '�' ���('�' ���(� /�� � � � ��� ����� �������� �� ��� ����� � � ��5 �������� �� < �� �: � �� 8<+;�

-�� � < ��� � ����� � �� �� ��� � � �� /�� �� ������ ����� ����� �� � < �� ����#� � < �

���N �� ����� �� < ���+� '��(��+� �� �� � � � �� ��#� � < ����� �����

����� ��� N ���� �� ���� �� ��� ��� �� ��� ��N :�8������ ���<7; �� �#���� � �� ''�( < �'�( ���� � ���� �� � ������ ������ �����F� � ������ � � � ����X''�( < � N X�'�( �� � �� ���� ������ "� �� �������� ���� � ����� ����������� ����#� ��������� �� ������4 �� � � � �� ��#�

X'��'�(� ���� � �� 8� + '� � ��(4

���X0�'���(� �� �� � � �N�5�NX0�'��+(� �� �N�� � � ��N+5X0�'��8(� �� ��N+� � � ���5

���� � �� 8 < + '�� � �(4

���X0�'���(� �� �� � � ��N�5�NX0�'���(� �� ��N�� � � �N+5X0�'��8(� �� �N+� � � ����

X0�'�( X'�� )�����,N X'�� )�����,

X'�� '�(�X'�'���(� �� ���� �N�5�NX'�'���(� �� �N������N�5 X'

�� '�(

�X'�'�N�(� �� ���� �5�NX'�'�N�(� �� ��������5

X' � '�( ��'�� � �(N X' � )��� '�� � �(,5 X'�'�( < X'�'��� ��(

X'����'�( �XX'��'�(� �� � � � � �� � ��� N �� � � � �����5� N � N XX'��'� N ��(� �� �� � � � ��� N ���

XX'��'�(� ���� � �� 8�+ '����(4

���XX0�'���(� �� �����N�5�N�NXX0�'��+(� �� �N������N+5XX0�'��8(� �� ��N+������5

���� � �� 8<+ '����(4

���XX0�'���(� �� ������N�5�N�NX0�'���(� �� ��N�����N+5�NXX0�'��8(� �� �N+�������

XX'��'�( : � �� 8 � +;�������NXX'��'� �� ���( �� ����� ���� ����� �� �� ��4

XX0�'��( < X'�� '�(� XX0�'�� N �( < X'

�� '�(

Page 64: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

-. ��1��� � �C������� '�!� �

�� � < ��� ����� � �� ��� ��� � ����� ���� � �#�� ��� '�'�( �� ���� ������ ��� ���#� ��� ��� �� /'�N!'�((� ����� !'�( < �� !'��( < �N �!'�(� ��� !'��N�( <�N!'�(� ������� !'�( � ��� � ��� �#�� ����� ��#�#� �� ��� /'�( ������ ��������� �%��� � ������ �� ���� ��� ����� �� ���� �����&����� ������4 �� �� �#����� !'�(#�� ��� � ���� ��� �� < � �� ��� '+���� ����(���� ���� �� ���� ���� +����� �� � +�����'������������ �� � < ���� � � � '����� N ����� N � � � N �����( �� ��#� !'�( < � N � N2� N �2��� N 82��� N � � �N ��2��(��� ������ ���� ������ �� ������ � �� '�'( ������ �� ������ �

� < �N�N:� � � ; ��'�� '( ��� �� ������ �

� < �� �� :� � � ; �� '�� '(� ����� ���� �� ��� �� � ������ '�� '( � � �� �� ��� �� '

�� '(�

/ &�� E < ���� �������� �� ��� ��� '��'(� ��� � < �� ���� ��� # <�� ����� � ���� � ������ �� ������ ��� # �� ������ � �� '�'(� ��� ��� ������ ������� � �� # �� �� � ��� �� � �� '�� � �(� ��� �� �� � �� ��� � ����I ���� � N '��N �(� < �� N '��� �(85 �� ��� ���� �� < � N '��� �()����' � �(�� '���� N �(, �� � �� �������� �� < N '��N �()����'� � ( �� '���� � �(,�?�������� ��� '� �(�� < �� N '��N �(� < � N '��� �(8� /��� E ������ �� ������ �� ��� ��� 0�'(5 ���� �� ������ �� ������ N�N:� �� ;N�:� � ; �� ��� ��� '��'(�������� ��� ��� ��� ���� � � ���� ��� � # � ���� ��� '� � �� ���(� B����������� ���� '��(�� ��� '��(� ����� �������#��� �� ������� �� ��� � N � N :��� � ;� ���� N � N :��� � ;�

/ &�� # < ���� �� �� '���'( ���� � �� �#��� � ���� ���� ��� �%��� ������'�� ��( '���� ��( ������ �� ������ �� '�'(� /��� # ������ �� ������ � < � �: � � ; N ��: < � ;:� < �; �� '���'�( < ��� �������� �� ������ � N '�

�� ���� �

�N �( ������ �� ' � �� < �� � �(�/�� � ����� ���� � ���� �� ���� �����&�� J '�( < /'�( N �J )�����,� � �� ��

/'� �� �(� :3������� 9�!99 ��� ����� � ��� ��� � G� / ������ �� ��� ��� ��#����������� �� ������ ������ #�� �� � �5 ��� !������ ����� ��� '����(� +�+!++*�;

���� $ �#� � ������ ��� ��������� � � �������#� ������� �� �� �� ��� ����� �����I ��� �� �� ���������� 2� ������� ��� �� 2� �6� ��� ��� �� ����������� ������� B �� � �������� � �� � � ������� ����� ����� �#�� �� �� �� �� �%������� ��� �� ��� ����� � J�&����� +�7J� ��� �� �� ���������� �� ��� ����������������� ���� � �� ������ ���� ��N � � ���� ��I ��� ��� 0�� �� � � � � '��� �(������� '�( -�� # �� � ����� � � � ::� ���� # � ::�� 3����� # �� � � � � :�� �����: � :� � #� � # < �:� ��� �� ��#� : � � � #�

$� : � # � ::� ������� ���� # < :E �� ��� E � :�� 2 � E �� � � � � # ����� � �E� < �#� � �:� � �:��5 ���� E �� � ����� � � � :�� ��� :� � E� �����������

'�( �� ������ � ������ � �� ������ ������ ��6���� ������ �� '�(� �� �������� ���� � � ����� �������� �� �������� :��� ��� ��� ������� ��� ��� � ,� E���] �0��������� ��� ���� ����� ��� �� '�9*7(� ��!�8�;

'( �� � �< �� ��� : �� ��� �������� � � � :� :�� /��� : �� ����� �� ��&��������� �� ��� ��� ��� #E ����� # �� � ������� � � � ��� :� � /������� :� � :� �# � #E < : � :�� � �� � �� ��#� : < :�� @��#� :� ��� ������ ���� � < ��

'�( /� �� B� �� �� ��� � < :# �� ��� ����� : ���� �:� � �:��� �� �������� ��� ����� � # � ����� ������ �����0���� � ��

'�( + � �8�79�*7+719�9+�+18*�*8++1+��97 � ��118�9�� 'L����� ��� ������ � �� �� �� ����� ��� &��� �� ������ /�� ��&���� ������ �������� � ��� � �������� �� A�����C �� ��� ����� � 2��� '��� ����� +�7( ����� ��� ������ � &�����������(

��

Page 65: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� -

���� "� � �� ��#� ��'� � ��( < ����

���'� � ��(����� /��� ������� '<-( �� ��������� 8�*��!8�

���� "��� � < $ �� ������ '7;( ����� � ���� &�'�( N $&�'$( < ��� ��� �� �����#� &�'�( < �� :/��� ���������� ��� ��#���� �� ����������� ������ � ������������� �������� ��� � /����� ����8B�;

��� /�� 881+ �������� ��� ������ ������ ������ 5 ��� ���8 ������ ��� � ��������� ������ '���� ��!�� ���F� ������ �� �� �� ������� ��� ����� ������� �� ��(

��� '�( -�� �� �� � ���� ��� ���� ������ ��������� ��� � ���� �� < #E� ����� � < #E��� # �< �� E �< �� -�� N �� ��� ���&� � � ���� �N� < �E�� 2� ��������� ����� �� � ������? � � ���� �? �� �����5 ���� N � �? � E?� � �� � �� ��#� N � E� ����I �����N � E�� ��� �� ��#� �� � E��

'�( -�� � < :�# < �� �� ����� :�#? �� ������ /�� ������ :�#? � #?������� ���� �� � ���� �� � � � ��(� ����� ( < �:��� 2 � �� ���� ��#� �� � ����5�������� � � �� ����� ���� � ����� ����� ���� :�� ���������� ������� ���'�(�

'( �� � �� ��� �%�������� � ��� : ��� :�� ����� �:� � �:��� �� � �� ��#�: < ':�(�N ����� N �� � ����� ���&� � :�� 2 � ���� N � :� � : � N�

���� ��� :��������0��; ��� �� � � � � � �� � �� �� ���� � ��� ��� � ��

��� :S�����; S���� '��� � ��( ���� ����� �

��� :� ����� ���; /�������� �� �� < �� ?�������� ��� �� � �� � �� ����� � �� � �� � � � ��

�� :E������ � �����; ' ����� � ������� ��7'�(� �� �� ���� � &�� ���&��� ����� ���� :� � �� ���( ��� � � ��� � � ��

�� :B��� ��� ��� �; '$� �� ���� �� ��� '� � �(%�������� � ��� ������� �� �( �� ���� � ��� ��� �� � 2�� ?��������� �� ���� � ��� ��� � ��/��� ������� � �� � ��� ������ ���� �����

/�� ����� ������� �������� �� ����� 28 ��� 27 �� � � � G� E� J #��� 0� ��������

'�91+(� +*+!+1�� B� � ����� ���������� ��� �������� @ ����� ������� ������ ���,����� 0� �������� �� '����(� �*�!�1��

���� /�� � ���� � �%� ���� #������ �� *�'�( <��

��� &�' (� ���� &�'�( <���� N

/'�� ���(� �� ��#� *�'�( < I'���( N/)I'����(,� �����

I'���( <��

���

��

�<��

�>'���(5

>'���( <

�������

���

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

���

�� ��� N/'���� �(

<�

�� ��������

��

��

���

'�� �(� N/'���(

/�� ���� ����� ���� � ��� � ����� ���� �� ��� ��� ��� �� ����� B+ ��� B7����� �� �� �� ��� ����� � ������ � ���� � ���� � �* '�(���

��� &�' ( <�����''�� �(��( N/'��'���((� /��� �� ���� ���� ��� ���� ������ � �� � ��� ��

����#�� �� ������ � ��� �� 2� �6� ����

�� � '�( �� � �< 9 9� �� ��#� :��� � #9���� ��� �� ��� ������ �� ������

��

Page 66: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

-! ��1��� � �C������� '�!� �

'�( "� �� ��� �� ���� # �� �� ��� ��� ���� 9����� �� � � ������� � :���:�:�:� <19����� -�� � �� ������� ���� # � :�5 ���� :� � #�� � # �� � ���&� � :�� ����# �� � ��������� �� �� ��� �#�%�������� � ��� ����� #� � #� /�� �������� #������ �� ������� B 6 �� ����� #� �� '#� � �(9������� �� ������� ��*� ����� #� � � ������ ��������� � ���� ���� �� �� ���� ���� #�� /� �� �� #� �� �� :���� ��� ���� '���� �������� ��� ������� ��*( ������� ���� :��� ���� ���� �� ����� � � �#�� � � � �#� 9����� � �� � � � � :���� ?� ��� ���� ���� �� #

� < :���� � �� � � � � :���� ��� #�� � ���&� � :���:��

'( �� � �< 9 9� �� ��#� :��� � '#�(���#9���� ��� �� ��� ������ �� ������?�������� :��� ���� ���� �� ����� '� � �(�#�� 9�� ��� :��� � '#�(���9����� � '�#(�

�� � � ������� � :���:�:����

'�( "����� ��� ������ �+7199�+79�8� �1�199�1�9�9� ��9999�+�+�+�8� �9�9�9����19999 �9 �9�9��� �19999 ��9 ��9����

:�� ��� ����� ��� ������ � �� �� ������� ��� ������ � �� ����'��N�(��� � � �� � 9 '��� �� �� ��� �� ���� ������� ���� 9����� � �� ��� ���������(�B �������� 9������� �� ��� ����� 9�������� ��� �������� �� � � � � 9� � ��� �� �� ���� � ����� 9�������� /������� � �%��� �� 2� �6� ��� � ������ �� ���� �������������� ������� ���� :� :��;

���� � ���� �� ���� � ���� ��� � ��������'���� ����(� '���� ����(�'8��� 8�8�(� '���� ����(�

/�� ������ ��� � < � �� ��� ��#�� �������� ��� �� � � � �� �� ��� �� �� ��� ������� �� ��� ���� � ��������� ��� ������� ���� ������ ������ ������ ��� ������ /����� � < + �� ������4 "� � �� ��#�

�� < ��� �� < ��� �� �� < 8�� �� �� < ��� �� �� < �� �� < �5

�� < ��� ��� < ��� �� �� < 8�� �� ��� < ��� �� �� < �� �� < �5

�� �� < ��� �� �� < ��� �� < 8�� �� < ��� �� �� < �� �� < �5

�� �� < ��� �� ��� < ��� �� < 8�� ��� < ��� �� �� < �� �� < �5

���� ��� < �� �������� ����� � �� � ������� ���� ����� N ������ -�� ���� ����� �� �� �%��� �� 2� �6� ���� � � �� ��� &��� �

� �������� �'76(� �� � �� ��� ��� ��� < �� ���� � �� �#��� ��� < ��������� �� ����� ���� � �� ���:/�� &��� � ���� ����� � ���#�� ���� ���� ��� ����� � ��#� ���� G�� ����� �� ��� ���� ��� �� 2� �6� �� ��� � ���� ������ ��� ��0�� �� !������

����� �� '�911(� ��9!����;

�� � < ����� ����� �� , ���� �� �� ��� ������� ��������� ������ � ��&��

��� ���� '�� � ��( ��� ��� ����� '�� � ���(

�� ����� � ������� ���� ��#� ��� ������ �� �� ��� ���� /� � ��� ���#� � ������������ � � �� ��� �� ��������� ��

����� ����������� �� ��� �� �#�� #�� �� � � ��� � �� �� )��\�� /\��:*�� ���� �������� #��������� ��� �������� �/����� '�911(� �*7!���5 ��� ���> ������ ��� ������ ����� � ����� �� '�998(� �7+!�*�;� /�� &��� �� �������� ��� ��� ��&���� ��I ���

���� ���++���+��+ �8�7�8+77+8�7�8�7887 �*���*+�8*7��7*8 ��**� �1

��

Page 67: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� � ��1��� � �C������� -"

��&�� � �� 2� �6� ��� ���� ��� ������� ���� ��� ������� ������� ��� ����������� �� ��� �� �� ������ �#��� /��� �� �� ��� ��� < �� �� �N �� �#��� ��� < �� �� �N �� ��� B� �������� ���� � < 8 �� ��#�����������������������������

� � � � � � � � � � + � � � + �� � � � � � � + � � � � � � � +� � � � � + � + � � + � � + + +� � � � � � � + + � + � + � + +� � � � � � � � � � + � � � + �� � � + � � � � � � � + � � � �� � � � � + � + � � + � � + + +� � � + � � � � + � + + + � + �� � � � � � � � � � + � � � + �� � � � � � � + � � � � � � � +� � � � � + � + � � + � � + + ++ � + � + � + + � � � � � � � +� � � � � � � � � � + � � � + �� � � + � � � � � � � + � � � �� � � � � + � + � � + � � + + ++ � + + + � + � � � � + � � � �

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

'������� ��9(5

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

� � � � � � � � + � � � + � � �� � � � � � � + � � � � � � � +� � � � � � � � + � � � + � � �� � � � � � � + � � � � � � � +� � � � � � � � + � � � + � � �� � � � � � � + � � � � � � � +� � � � � � � � + � � � + � � �+ � + � + � + + + � + � + � + +� + � + � + � + + + � + + + � +� � � � � � � + � � � � � � � +� � � � � � � � + � � � + � � �� � � � � � � + � � � � � � � +� + � + � + � + + + � + + + � +� � � � � � � + � � � � � � � +� � � � � � � � + � � � + � � �+ � + � + � + + + � + � + � + +

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

'/\��(�

���� '�( -�� �� < ��� � � �� � + �� � � � 9� � �< �� B�� ��I ���� �� � �� �� ���� ��� �� < �� �� < ��5 ���� < ���� N ���� :�� <�; �� � � � 95 ���� < �� N '�� �� ����(�� �� < '�� �� �( ��� � � � 9� /��� ��� �� � ������� ��� ��5 �� ���� ��� ����������� �������� #�� �� ���� �� ,�� ���� ���� ��� ��� �� ��#�� �� ���������� �� < ����� �� < �� ���� ���� ����� ������� � ���� ���� ����� ���� + < *7*� ���������������� � �� ������ �� �� ��� #�� ��� ������� #����� � ������� , ���� ����5 ��������� �8���� ���� ��� �*�� � ����������� ��� ������ � ��� � ���� ��� �������� �������� ��� ��� �������������� � � ��� �� ���

����� ������� ���� .��� �� � #��� ��� ����� ����� �������� ��� ��������� ���� �� � ������� ����� ��� �� ��� � ���� � � ����������� � �77� � � ����� �� � �� � 7�� ��������� ����� /������� .��� �� �� �� ��#������ � ������ ����������

'�( $� '���� �+���� ���� ��� 89�� � �����������( �� �� ���� ��� � ��������� ���� �8�� � � �� �8�� /���� ��� 8* ���� � ��������� ���� ��� ���� ��� ����������9� 1� N * N 7� 8+ N ����

:>� 3� J ����� ����� �� ��� A��� ��C ������ �� ��� ;�� �/ !�� ���� '8 ����1 G �� �199(5 ��� ��� ��� 4�����/ � !� ����< �� ,����� .������� ������� *�;

���� /�� ����� � ������� ��� �� ����� ��� ���� �*� ������ ���� ��� �� ������� ������������ ��� �� +�� �� � � � ������ ���� +� "� �� � � � ������ '���8������ ����� ���� � ���( �� &��� ��� ������ ��� ������������ ��������� ��� ��� &���� ��� ���� � ������� �� � � � � 9� ���� ��������� ��� ���� � ������ ���� �� ��� 9�/���� ��� *��+�1 ���� � ��������� ���� ��� ��� &��� ��������� � ���� �� �*��8��

��

Page 68: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

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

� �"�$ &��'�� ) 42.6 $�'�) 6�) 86.A $�'�) 25) 48.����) ��� ��� %��+��) ��"�%�# ��. �$��$(� ������) 64) <;.���) ��� ��(�� /�&$���&.

�(�� � (�&��� ��$����&$�) �4.�&�(�+ �� "�+���( $�&!�� ��&) 476) 28.�&�(# � �/ �(+������ ) �A) 45) 4A.�&�� ���# $�"�) 48.�&��*�"�( %��" ) 22.�����) E���#�B� � �) 62.��&"�) F,��+) 68.����G$��( �&��((�+�&$�) 64.��'���) F�$H�� ) 86.�������*�� � ) 63.

��(�&$�" ���# $�"�) 26725) 48) 63.��&"%�"�� �/ � $�'�) 48.'��"> �&� ���& �� ��& �&�� ��.+.) �&�

'��� *�� �$�&") 6.���"��) F��& �����$� I���(�) 678.��$B���) �����( ���$(�#) 46748.��&&���) 1�((��� ��(*�) 6.���& ���&) ������ F�#) 66.��&��# ���# $�"� ) 2�725) 44748.��&��# &��'�� # ���) 2) 6.��&��# ��$����&$� ) 64) 83.��&��# ����) 4;.��� ��!�� �() �A) 42.���%� � �*������& ) 6) 2272�) 4�) 68.����() I���(� �I�(�D I�"����" F� ��&) <;.�����%) 6;.�������& ) F�$�'� �: F�$B� �����

�����&�) 88.��� ���*��"�& *��"�$�) 4<) 8<.����J&) �$�(�� ��!��� "�) ��.

$#$(� ) ��7�5) 4<74A) <�.���� � ) 4A.

��$�&��) ���+�& ��((��#) F�.) 66.

��("��'�&B) ������ ��'���) 64.��&�� *�KK(�) 88.��&�&�$�( "�(�� �H��&$�) 24) 63.���"�&�) ����(��� �: �����&#��

���"�&� �) 62.����#) �) <�.�� ��%&) ��"�(*� 1.) 22.�����(() L�!�& ��$���() <2.��!���) ���*��& ��'���) 66.��#(�#) ������) ����(��& �������) 68.��&��� �/ +��!��#) 25.

�����$���� ��$ *�(#&����() 68.���&) L�� �� � �) �<.���&� � �����&"�� �������) <�.���&� � ��&+ *�KK(�) 87<) �A) 6276�.���&+) ���&+ ���� � �) 86.��$B) F��& ���%(�) <�.���&) �����&) 63) 82) 86.���*(���&���# ���# $�"� ) 24) 2<725)

44) 63.���*� ����& ) �A7�3.��&$���&����&) �8) 48) 63.��&$����&� $��*���&+) 64.��&&�$��" $��*�&�&� ) 46.���B�) ��#��&" ���B) 82.����"�&��� ) 24.�������&� ) ��$�� �!�) �67�8.������) 1�((��� ��&�#) F�.) 88.��'�) ��� � $�'�.��'� $�&&�$��" $��*���� ) 64.�����&+ ) ����# F��&) 85.�#$(� (��"�� ) 42.�#$(�$ ��/� ) �<.

M�((#) 1�((��� F��� ) 64."� ����J&) �$�(�� ��!���) ��.

$#$(� ) ��7�5) 4<74A) <�.���� � ) 4A.

M�$���( &��'�� # ���) �) 2A723) 43.M�(�� �H��&$�) 24.M�(����& �/ ��'�""�" +��*�) 48.M� $���� ������� ���& /���) 3) �5) 65.M�!� �� �/ � &��'��) 48.M��'(# (�&B�" (� �) �2) 8<785.M��+(� ) ��'��� F��� ) 6A.M��( '�� ���*��"�& *��"�$�) 8<.M�"�&�#) ��&�# ��&� �) 8) <4.M�!�() F��& ������) <2.M#$B��&) ��%��" �(�#") 4<) 88.

�"+� $�!���&+) 48.���(�$�) ��"��& ������ ����) 3.�&��������&) 2.����� $����$��&+ $�"� ) 4;.��K��&) �!� ������ ��� ) '��& ����� ��� �) �8.�D��& ��&) �<.

��$����K����& �/ ���&+ ) 45.�(+������ /��) <2.

��(��� � ) ���� �� ���������� �������) 64.�� � ������� ���& /���) �A.�� � 1�( � ���& /���) 4�.������) ������ "�) �������) 4A.��'�&�$$�) ���&��"�) �/ �� �) &��'�� ) 4<.���(") G&���) 4�.

<6

��

Page 69: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�M�C �M �������E -6

��!� (����� %��" ) 22) 4�744) 4A.�(��� ) �!�&) 86.��$� *��&��� ) 2;722) �;7�2) 8<785.���� �) �;7�2.�������) F��& ��*�� �� F� �*�)

���� ) 5.���& /���) "� $����) 3) �A) 65.

��D) ��(*� ����K(��) �<.���"��&) ��$���( ��%��&$�) 44) 65.���"��$B �&) ����(" ���!�&) �<) �5.���&+�) �2) 8<785.

���"&��) �����&) 88) <4.��&�����&+ /�&$���& ) <2.��&������&) 2.

$�& ��&� ������K�" ����) 6;.(��*(� ) 372�) �;) �A) �3) 4<) 6�.

��('���) �"+�� �( �&) 44.��('���) 1�((��� �$�%�&$B) 2.��""#& "� (� N�+�) ��� ����&"�) 46) 8;.���� ) ����� F��&) ���.���"��& L&�� *�KK(�) 48.���#) �(� ��) 8.���#) ���&B) 6.���# '�&��# $�"�) �72�) 2<) �A744) 4<.

*���������&) 4) 42.���# '�&��# ����) 4;.���# $�"�> � $#$(� �/ �"J�$�&� �'J�$� )

2�) �;.���# $�"� /�� � ��*(� ) 2�.

�"!�&��+� �/) <) 2272�.'�&��#) ��� ���# '�&��# $�"�.(��������& �/) 6;) <4.&�&'�&��#) 2A7�;) 4874<.

���# G�(" ) 42.���# *���> � �H��&$� �/ �"J�$�&�

�'J�$� ) 28) �;.���# �����) 46.���# ���&��# $�"�) 23) 4<.��� ) ��$ �+����& ���� ) 8.�!�K"J�B) ��!�() 46.

��"����") F�$H�� ��(���&) 65.���& /���) 3) 4�) 6<) 65.

����(��&) 1�((��� ��%�&) ��� ��#(�#.$��$���) 24) 46.*���) 28.

���(�#) 1�((���) �&" �& ) 88.�����& ) ������ ��+��) F�.) 64.�������) ��&&�&+ ����"�(/) 5.��D�"�$���( *�KK(�) 6�.��*$��/�) F��& �"%��") 66.���('���) �(�&& ��%(�&") <;.

�� ��� *���������&) �A) 42.�� ��� ���& /�������&) 3.�&$(� ��& �&" �D$(� ��& *��&$�*(�) <.�&(�&� �D*�& ��&) 2272�.�&���(��!�&+) 45) 8;) <�.�&���&��) ��) ���.

�&!�� � /�&$���&) 6) 42.� ��B) ����� �����#) <�.� ����*��$ ���# $�"� ) 44746.��������& �/ /�&$���& ) 4�) 68.

F�*�&� � ���������$ ) 62.

L��&��+�) �����$�) �3.L�"(�#�) L���& ���"����) 63.L�� ���) 1�((���) 6�.L��/��) F�$B ���() 86.L&���) M�&�(" ��!�& � �) �) �!) 85.L�"�) E� �&��� � �) �;7�2.L��&�$B��) ���*�(") *��"�$�) 6<.L����) ��&+�&���(� N�J�#

� ������� ��� � � � � ��� �) 64.

�����!��) F�(� �(*��& �) <.��%��&$�) ����+� ��(!�&) 28) 8;.���) ��� ��� �. E.) 6�.

"� ��&$�) �3.%��+��) �3.

���*�() �'����� ����� ������) �8.��D�$�+��*��$ ��"��) �74) �8) �3) 65.��) ��&+ �: L�&&#� � �) 85.���!� ) 4;.��&B�" �((�$����&) �A.�� ��&+) 2.���&# ���*) 4874<.���*(� +�&������&) 372�) �;) �A) �3) 4<) 6�.��B�) ���&� � ����� ������ � �������������)

6;.�#&"�&) ��+�� ��&�&�) �<.

%��" ) �<.

� ��# "�+��> �& �&��+�� '��%��& ; �&"� � 2) �&$(� �!�) �) ��.

��$�� *��$� ��) 22.������&�) F��� �&���&#) �<) �5.��&��() 1�((��) �4.�����&) ��&��� ���&� �) �57�A.���$��&+) 44.�����D ��� ��) ��!�&+ F� ���) <4.�$�(�&��$B) 1�((��� �"%��") 28.��"��&) 42.���� ) ����(� ��'���) <2.��(����# �#�&+ ) 2.�� ��) F�#�"�! ������ ����) 62.���$��(() ���� ��*��� F��&) �8.��D�" ��"�D &��'�� # ���) �) 237�2)

48) 86) 88.����) 6;.��"�(�� ���# $�"� ) 237�;) 48) 86.

"�$���() 23.� ��#) �6) 86) 85.H�����&��#) 6�) 63.���&��#) 6<) 82.

��((��") ��$��() 6A.��&�$ *�(#&����() 6�.��&���&�$ '�&��# ���# *���) 2872A) 48.��� �) �����( ��&(�# ���� �) $�"�) 4<) 85.

��

Page 70: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

-- �M�C �M �������E

�� ��) ���) 6A.��(��&����( $��Æ$��&�) �3.

� $�'�> �� +��*� �/ � '�� ���&+ )�"J�$�&� %��& ���# "�-�� �& �&(# �&�*� ����&) 24) 28) 44746.

�'$�'� �/) 4;742.� "� ���'���" �H��&$�) <;.� �D��& ��&) �<.� ��*(�> � �H��&$� �� ���&+ �/

(�&+�� �) 27�.�����) �!�(#& �: �!�� ��((� ��� �����) 8;.�#��&) F��K#) 86.�&'�&��# ���# $�"� ) 2A7�;) 4874<.�&(�$�( ���# $�"� ) 2<725) 46.��" ����) �(�& 1�#&�) 4;.����( &��'�� ) <;.�!��) ��&�#) 88.

�$��$�"�) 4;.�����+�&�( !�$��� ) A) 4�.�������� � ) 4A743.

��(�#) ��#��&" �"%��" �(�& ���� ��*���)68.

/�&$���& ) 4�.�����# '��) <) �A) �3.����� �&) L�&&��� ������) �8.���!�� �) ����� O��&��&) 48.�� ��) 64) <;.���GD �/ � ���&+) �8.���*� ���"��) 6�.���*���� ���&+) �<7�A) 45.����� ���&+) �87�A) 45.

/�$����K����&) 45) <2.�������!� *�(#&����( ��"�(� �) �4) 68.���&$�*�( �'/��� �) �;7�2.���*�� *��GD �� �ÆD) �8.� ��"���&"�� '�� ) 45.��( � $�"� ��"�(����&) 6.���B� ) ��&�# F��&) �A.

O�����&��# � ��*(� ) �3) 63.

�PM �����") �8) 45.��"���$���) ��& ) A.

/�&$���& ) A) 4�) 6<.����� ) ���B ���&��") 8;.��&"�� &��'�� +�&������&) 45.��Q�$��" ���# $�"� ) 237�2) 48) 86) 88.

"�$���() 23.���&��#) 4<.

��$���" ) M�&� �$���) 4<.��+�� �'$�'�) 4;.��&+�() ������") 48.���$���) �(� ���� �&+(� �) 6�.��'�& �&) F��& ���() 4;) 63) 82.�� �&'���) F� �*�) 86.��(�� /�&$���&) <) A) 2�) 24) 65.

"�$���() 23.��& (�&+�� ) 28725) 46) 8;.�� B�#) ���&B) �;) �2) �A) 42) 44) 85) <2.

��(K��) ���'��� �((� ) 66.���* �&) F��& �����&$�) 44) 6A.��!�+�) ���(� M��&�) 2572A) �A) 44) 48) 6A.��%�"�) F� �*� F��� ) <2.�$�,�-(��) ����) 8.�$�&��"��) ���&�"����) 86.�$�,��K�&'��+��) ���$�( ���() <;.��H��&$#) 5.�����) ��$��(�) <2.���*���) ����(" ��#����) 44.���/� ��+� ��� �H��&$� ) ��7�A) 4<74A.��"�%�# ��) 28) 66.��(!����&) F���#) 44) 6A) 63.�(��&�) ��( F��� �(�D�&"��) 64.�(�$��) ����(" L�&&��� �: F���#�) 88.��(I�) �����$B) 64.�*�&��� *�KK(�) 6�.�H����) ������% �(�K�) 85.����&B�) 1�#&� ���) �4.���&"��" �H��&$� ) �<.���&/��" ���*��� �) ��) ���) 22) 4�744) 4A.����+(��K) L�&&���) 66.���!�& ) �����) 46.���%���) ��& �$��(� ) 4A.���'��K) ����+� ��'���) 6) <.��'$�'� ) 4;742.��'/��� � ) �;7�2) 4<.��' �� ) 2) <.��ÆD �/ � ���&+) �8.��� �/ H���� ) 4�.�#(!� ���) F��� F� �*�) 4�) 65.

�&+(� *�KK(�) ��� ���&# ���*.�#(��) �(�#" 1�((���) 8.�(�*��&�) 8.�(�!� ��&) 6.��&��# � ��*(� ) 23) �<7�5) 46) 4<)

68) 8;) <4.���&+ ���& ) 8.����(() ���-��# ��(�&) 26) 62.������ �� �) 48.��� ) �3) 4A) 6�.I���) R�(�I�&) <�.��& ����& $��&� ) 26) 44.��!�� �() 2.��&" /��� ���# *���) 2<725) 48.���) 4;.�(��&�) F�&����& �.) <;.�*(�> � �H��&$� $�&���&�&+ � +�!�&

&��'�� �/ �(���&� .

�* "�%& �H��&$�) 4<.

NI�K �&#�) �&"��) 8<.N�$B�� ) N��+�( ��+�&�) 44) 6A) 63.N� ������&) 2.

��

Page 71: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�M�C �M �������E -'

1�((� ) F��&) <) 62.1�( �) F� �*� ���&��") 5) A) 68.

/�&$���& ) 573) 4�.���& /���) A73) 4�.

1�&+) ���# ��& E�� � �) �A.1� �'��&) ���� ���%��") 6�.1��+�� �&��������&) 6�.

1��"���&&) M��+(� ��&�#) 85.1�&B��) ���!�& L��() 6A.1�&B(��) ����� ��&&) 2572A) 46) 6A.1��**�&+ ����&") 23) �3) 4A.

E��� ) ���&B) 3.E��&) ���&+ L%�&+ � �) 66.

��

Page 72: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

��� ��� ��

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

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

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

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

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

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

��

Page 73: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

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

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

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

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

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

��

Page 74: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�������

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

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

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

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

���� ����� �������� ��� ������ ���� ��� ���� ����� �� ������ �� ����� �� �� ����� ���� ���� ��� �� � ����� ��� ���� �������� ��� ���� ������� ���� ���� � ��� ��� � �� � ��� ������� ������� �� �� ��� ������� ���������� ����� ����� ����� ��� ����� ���� ��� ��� � ������ � ������� ���� ���� ��� ��� ������ � ��� ����� ������ ������� ���� ������ ������ ��� ���� ������ �� ������� � �� ��� ���������� � �� ���� � !� ��� "��� �� ��� ���� � ���� ��� ��������� ����� �� ����� � ��� ��� �����#���� ����� �� ������� ��������� � ���������

$���� ���� ������� � ���� ���� �� ��� ���� ���� �� ��� �� �� ������������ �������� ���� ��� �� �� ���������� �� ������ ��� ������ ���� ��� ��� �� �� ���� �� ���� ���������� ��� ������������� �� � �� �� ����� %�� ����� � �� �� ����� � ������ ���� �� ���� �������� �� ������ �� ��� �� ���� ��� �������� � ��� ��� �� �� �� ���� ����� ��� ����������� ��� ��������

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

���

��

Page 75: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�� �������

9��� ��� ������� � �� � ����� � ���������� ��������� ���� ��� �� ���������� � ���� ���� ���� �� &������� �!�0� �"�"� !�!�"� !�"�*�!� "�*�!� *� � :� � �:� �!� :� �*� :�!� � :�!�!� :�"� � ��� -� � ��� ��� ���� �� ����� ���� � �� �������� � ���� �� ��� ���� �������� ������ �� &������ �"� � � ;����� � �� ����� � �� ���� �� ��� ���� �� � �� ���������� �� � ���� ��������� ���� ��������� ��� ������� � ���� � �� �� �� � �� �� ���� ������ ���� �� ���� � ��� ������ �� �� ������� � ���� �� ���� ��������� ���� ������4�� ������ � ���4 � ��� �� � ������� #���� � ��� � ��� ���������� ������ ���� �������� �� � ���

&��� � ��� ������ �������� �� ���� �� ��� ���� � �� ���� ����� � ������� �� ��� �� �� � ������� �� ��� ���� �� ��� ��� � 5����������7 ���� ������������� ����� 3 ���� ���� � ����� �� �� ��� �������� ���� ���� � ����� �������� ��� ��� )���� ���� ���� �� ��� *- � �����,� ���� � �������� .<��� 1 ���� � �� ��� ���� � ����� ��������� ���� ��� #�������� �� ��� �������� �������� !<� :<� -"� -'� <<� 00� .:� ��� � +� ����� ��� ��� ��� ����=3 ���� �� �� ���� � ��� ���� � � �� ����� �� ��� � ����� ��������� #���������+�� � ����� � �� �� ����� �� ����� ����� ��� ��� �� ���� ������ �� ��� ����� �� ��� ����� � ���� ���� �� �� �����

� ����� � ���� ��� �� � � �� ���� ������ �� ���� �������� ���� � ������ �� � ��� ������� ���� ������ � � ������ � ����� ��� �� ��� ����� � ���������� ���� � ���� ���� ��� ����� �� ������ ��� ���� � ����� ��� �� �� #��������� 5����7 ���� ��� /��� ������� �� �� 5� ������7 ������ � ���� �� �� � ��� ���� ��� � ���� � ���� �������� ���� ������ �� ��� ����� ���� ���������� -� '� !.� !:� * � ::� -.� -:� --� -'� -0� '.� ':� <<� 0<� ����� ."�

� ��� ����� � ��� � ������ �� � >!�:- � ���� �� �� ���� ��� ���� �� ����� ������ �� ��� ������ ���� �� �� ����������� � �������� � � �������� ���� ���� ���� �� �� � ����� ���� � ���� �� ��� �� ��� ������ +�� �� ��� ������������ � ����������� �� ��� ���� �� ���� "!�� ����� );�������� ���� ��� � ����� �� ����� �� �� �������� �� ����� � ���� ��� ���� ������ � �� ������� � ��� ������ �� ��� ������ ��� ���� �� ��� ������� ����2�,

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

��������� �������� A� 9� B��� �������� ����

��

Page 76: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� �����

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

�������� �������� ���������� +�� �6��� ��� ��� ���� ���� ��6������ ���� �� ��� � ���������� ���� ��� � ����������� ��������� �� ������� � �������� � ���������� � ���� ����� ��� � �� ������ D��� ��E�������� ���� ���� ������� �� �� �� ���� ��� ��� �� ���� � ���� �� ���� ��E����� ������� ���� ���� ��� ����� � �������� �� � ������@ F� �� ����� ������� �������� ���������� �������� �� ���� �������� ��������� ���� � � ������ ������ ���� �� ���� ���� � ��� G���� �2

� ������ � )�� ��!���"� ���������� !��������,� $���� � ��#����� � �� ������ ���� � � � ��� ������ � ����� �� ����

�� � �� � � � � � ��� )�,

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

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

����� ������������ ��, +� ���� ��� � ����� �� �� ������� �� �� ������ ������������1 �� ���� �� ����� � ��� ���� ��� ����� � ����� ���

��� H������I ����� ��� ���������� ���� � � � ���

Page 77: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! �� �������� ������� � ����� '�!� �!

��� H;��� ��I &�� � � � � � � �� � ����� ������� � �� ������� � ���� �� � ����� �������� ��� � ������ � � J .� )+� ���� ����� � �� ��� ������������� ���� ���� �� ���� � ���� ������� � ����������� ��������� ������ � � � �� � ������ ��� ������������ � ���� ���������� �� ������� ����� �� � �� �,

��� H������� �� �I &�� � �� � �� � ��� ������� �� ������� � ���� �� � ������� ���������� �� ��� )&���� ���� � � � � � ��� � ����� �� �� ������ ��� � ����� ����� ���� �� ���� ��� ��������� � � �� �� � � � ���� �� ������������ %��� ��� ���������� �� ��� ���� � � � � � ���� � �� �� ����� � � � � � ��1 ��� ��� ����������� �� ���� ���� � � � � � ���� � �� �� � ���� � � � � � ���,

��� H8����� ���� � � � ���I &�� � � � C ��� � �� ����� � � � � ������������ ��� ��� � � � C � � � � ��� ����� ���� � � � 8���� �� K �

���� � ������ ���� ���� �� ���� �� ��� <�� ������� �� (� ;� ?��������������� �� �������� ������ � �� ������ � ���� ��� ��� ������� �� (� ;�8L����� )K���M��2 '<*,� � ��N� ���� ��� �� ��� ���� �#���� � ���������� ��������� ��� ����������� ����� �� ����� K! ��� K" ��� ��� ��� �� �����

�� ����� � ��� ����������� �������� � ��� ����������� ������ �� � � � ���� �������� � �� � ����6���� �������2

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

�������

+ ������ K � ��� ���� ����� ������� �� ��� ���� � ���������� ����������/��� �� + ������ '�!� � D � ���� �� �� ��� ���� � �6��� � ���������1 �� �� ��� ������� ���� ��������� ���� �� �� ������� ���� ����� � ����������� �������� O����� ���� �� ���� ���� � � � � � �� �� ��� ��������� � ���� K*������� ��� ��� ���������� ��������� ���� ��� ����� ���� �� � � � �� ���� � � � ���� � � � ����� ��� ���� K* ������� �� �� ����� )�� �,�!� ������������

�� �������� ���� K! ���� � J � � �� � ��� ���� ���� ��� � ������ ����������� ������� ����� � �@�! � ��� �@ ����������� ���� ���� � ��� ������+ ������ K ��� �� ������� �� �� ������M��� ���� ������ ����� ������� �������� ���������� � ��� ���� ������� )&�� ������� �, &��� � �� ��� ������ ������� � � �� � �� �� � ��@ ���� ��� ��� �� ��������1 ����� ��� ���� �� ����� K!NK* ���� � �� ��� ���� 9������ - ��� �M�� ��� ������ ���� �� ����� � ����������� + ������ K �� ������� � ������ ���� ���� �#�� � ������ �� ��������� ��� ���� �� ��� ����� ���� ��� ���� ���� ����� �� �� ��� �� ��������� ��� � � � � ����

������ ����������� F� ��� �� &������ '�!� � ���� $�� ����� �� ��6���������� � ��������� �6��� ��� ��� ���� � ������������� ��� � ���� ������ �� ������� ������������ ��� ���� ��� ������ � ������ �� � ������������ �� ���������� ��/����� � ������� ��� �� ���� �� (����� : ���� ������������� ��� �� ����� ���� ��� � �� ���� � ������ � ��#����� � ����

Page 78: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� "

������������ );� ����� �� + ������ :�!�!% ���� �� ���� ����, ?���� �� ����� ������� ��� ������ ��� ������ ����������� �� ������� ���� � � �������� ��� ��� ���� ���������� ��������� ���� � ��/����� � �������

+ ����� #������� ��� �����2 �� �� ������ � �� �� ������ ��� ������������ � ����� �� ����� �� ���� � ��� ���� �� � ��� ��/����� � ������ ������ � ������ ���� ����= � ��� ��� ���� ����� ���� �� ��������� � ����������� �� ���� �� ���� � ��� ����� ������� �� �� �� � ���� �� �� �� ��� ��� �E��� ��� �������� ������� � �� ������� �� ����� � ��� ��� �� � � � �� ���� �����

+ ��� ���� ��� �� ����� ��� ������� � ������� �� ����� � ���� ��� ����� $��6 ��� ��#������ ;� ����� �� ��� ��� ����������� � � � � !� !� �� ���6������ �� ���� ���� �� ��� � ����� ��� �� ��/����� �����������2

!! ! !! !

!! ! ! !! 1 ) ,

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

%�� ���� ��� �������� ��� ���� ����������� � � ���� � ������� ��� ����� ���� ���� �� ���� ����2 + ���� � � ������ ����� �� ������ � �� �������� �@ ����������� �� ������ /��� �@ � ��/����� ������������ ;�������������� ���� ���������� ����� �� ��� ������� ������ �� �� ���� � ?��� ������������ ��� ����� �� $�� ����� �����

��� ���� �� �� ���� ���� � ��#����� � � � � � � � � � � ��� �� ����� �������� � ���� ���� ���������� �� � ����� ;� ����� �� � � J * ��� ��#�����) !"� "!� " !� "! � !" � ! ", ���� �� ��� �� ���� � ��� ���

!"* "!* " !* "! * !" * ! "* !*" "*! " *! "!* !"* ! *" *!" *"! "* ! "*! !*" !* "* !" * "! *" ! *"! *!" *! "

)�,

���� * �� ������� �� � �� ������ � ���������� O�� �� ������ ��� ��������#����� �� ������ �������� �� ��� ��� �� ���� ������ �� ��� ������� ����6���� �� ��� ����� � � � � ������ �� ��� ���2 ) !"*� !*"� *!"� * !"� * "!� *"!� "*!� "!*� " !*� " *!� � � � � ! *"� ! "*,�

�� &������ :� � �� ������� ��� ��������� � � ����������� ���� � ��� ����� � ������ )��� �������� � ��/�����, ���� �� ��� � ���� 9��� ����������� ��/����� � ������ ������� ��� ���� ����� � ��������� �� � � �� ���� ������ ������� ��� ��6�� �� �������� ��� � �� � � � �� � ������� :� � N'� ���� �� ����� ����� � � ������ ���� �� ��� ���� � � ���� �� ��� ���� �� �� ��� ������� ����������� �� )�, ���� ��� � ����� �������� ��� ��2

.... .. . ..!. . !. . . . ..

... .. ..! . ! . . .

...! .. ! ..!! . !! . ! . .!

..." .. " ..!" . !" . " . ."

)�,

+�� � �� ��� ����� �� ���� � ������ � ���� ��� �� �� ����� �� ������������ � ��� �G����� $�� ���� � ����� ������ ) � !� "� *,� �� �� 9#�� )��,N)��,

Page 79: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* �� �������� ������� � ����� '�!� �!

� &������ '�!� � � ��� ���� ������ �� �� � � �� �� ������� �� 9� F� A�/����H��� ��������� � ) 0'-,� ":'N":0I� ��� �� ���� �� �� ��� � ����� ��� �����2

� ������ � )#��� �"��!� ,� $���� � ��#����� ���� � � � �� � � ��������� ������� ���� � ������ �������� � � ���� ����������� �� ������� � ����6�������� ��/����� ����� �� ���� �� ���� ��� ��� ���� � � � ��� ����� ����������������� �� �������� ������ ������ ������ � ��#������ � ������� ���� ����

. � �� � � � � � � �� )�,

+����� ��� ���� � � � �� ������ ��� ��������� �� ����� ��� ������ �� �������

��� H������ �M��I &�� �� � . ��� �� � � � � � ��

��� H������I ����� ��� ���������� ���� � � � ���

��� H3���� � �������I &�� � � � ��� �� .� )��� � ����� ����� ����������� ��������� � � ����� �� �� ����� �� ������� �������� )�,1 ����� � ��� ��� ����� � ������� � � ���� ���� �� J � � �,

��� H8���� �� ������=I &�� � � �� C �� � � � � .� �� �� 3'1 � � J �� �� �� 3-�

��� H(������I ���������� ������� ������� ���� ��� �� � � ��� ���� �� 3!�

��� H������� ��I �������� � � J 1 �������� ��� �� �C �

��� H&����� ���������I &�� �� � ��� � � � � � � ��� �� ���� �� 3*�

���� �������� ����� � �� � ���� � � � � � ��������� �� '��6������9�� ���� ���� �� ����� ����� ��� �� ����� ������ � ������ � ��� � �� ��� � ������ � ������������ ���� �� �� + ������ 3 ��� ������ � ����

�"��!� � ;���� <)�, � ������� ��� 5(������� ;���69�����7 �� ���� ���� �� ��� ��#����� � *< ����������� �� : �� � ���� ��� ���� ���� ����� �� � -..�� ���� ��� � ���6������ ������ � ���� �� ��� �� ������� � :@ J !. ������� ������ ��� ������ � ������ � + ������ 3 ��� ���� ����� ��� ��������� �� 3��� D���� ��� �� ��� %�� ���� K����� ������ ����� -:"��� ��������� �� 9���� D��� �� ��� ������� �� ��� �� ����� �������

) 0" ,� !0N".� &��� � �������� � ����� ���� �� �� ����������� ��� �������������� � �� --< ��� ��� ����� �� ���� ���� ������ �� 8����� A���������� ;����� &������� ������� ��� ��� -. ����� �� � ����� �� ���������� � � ����������� ������ �� �� � J " �� ��� ���� � ������ � ��� ��

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

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

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

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

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

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

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

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

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

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

Page 80: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� :

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

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

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

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

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

���� ��� - � �������� ��� � ���� � �������� �� 2������� �� .������� /������ &�'�������� � ������� /�

%����� �� ������ ����������� ���� ���� �� �� ���� �� ��� ���� ������������� �� ����� ��� � ��� ���� � �� � ������ � ���� ���� ������� �� ;������ �� ���� ������� ��� ������ �� ;��� <)�, ����� �� $������ A��� ���5��� ���� ��� ���� ��������� 3�� ���� ��� ��� ��������� �� �� ��� �� ����� �7 H����������� ���� 0:I� &��� ����� ������� �� ��� ���������� ����+ ������ 3 �� � ������ � ����������� ����������� ��� ���� �� ��� ���� �� ������� ��� ��������� �� �� ��� ��� ��� �� ���� ���� ��������� �������� ��� ��� �� ������ F� $� F� ����� ����� ����� ������� ) 0-:,1 ���� �� +� �� F����� ��� ��� ) 00-,� '' N''<�

?� ;� ����� ��� ����� ��� ��� ������� ��� ���������� � � ��� ��������� ���� � ) 0-!,� *"*N*":� ��� � ������ �� #���� ������� ������� � ���� ���� ����� ���� �� �� ������� -� ������� � � ��� � ���� � ����������� ���������� ������� ����� ����� 3- ��� 3'� %� �������� + ������ K ��/��� ������� ���� �� � ����� �� � ��� �����

��� ��� ���� + ������ 3 ���� ����� � ��� ���������� �� ����� ����� ������� ����������� �� �������� �� � ������ � ���� ��� ��� )��� ������� :� � N ",� ������ �� ��� ������� � ��� ���� ����������� �� ���� � ������������ ��� ����� �� ���� ��� � ��� � ��� �� ���� �� ���� �� ���� ���� � ��� ��������� ����� � ���������� �� C � � �C ��� �� �� ���

D��� ������ ���� �� ������� ��� ���� ����������� ������� �� ��� ������ ����� �� ������� �� ������ ��� ����� � + ������ 3 ���� ����� F� ������� � ����� � ��� � ������ � ����������� ����� ��� � ����� ������2

� ������ � )#��� �"��!� ���� ��� ,� ���� � ������ �������� � ��� � �H I��H!I� � � � � �H�@ � I ���� ���� ��� ������� � + ������ 3 �� �#���� ��� �� ������������� ����������� ����� ������� � � � � �@� F� ������ ���� � � !�

��� H������ �M��I &�� � � �@� �� ��!� �H�I� � ��� �� !�

Page 81: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- �� �������� ������� � ����� '�!� �!

��� 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������ �" � � � � � �������� ���� �� �!�

;� ����� �� � � J * �� ��� ��� ��� � )�H I� �H!I� � � � � �H!"I, J )"� !� � "� � !� "� �"� !� � "� � !� "� � "� !� � "� � !� ",�

� �������� O�� ���� ������� � ���� � ���� � ��MM � �� ����� ������������� ���� 2 ?�� ��� ��� ������

��

C � �

� ��

)�,

������� � ����� ���� � ���� ���� ������ � � ��E���� ������ �����=H?� 9� A������� ����� � ) 0!*,� 0'� ! *�I &��� ��MM �� �� ���� �� ��5� ����������7 � ��� ������ �� Q� +� ?� ?���� H���� �� �� )������2!' P����� 0::,� !'I1 ������ ���� 5����������7 ��� � �� ���� ��������� ��&� ����#���� H����� � )D�� 0" ,� :.I�

��� � ����� � �������� )�, ��� ���� � �� �� ��� �� ���� )��� ������� ! ,� %�� ���� ������� �� ���� �� ��� ���� � ��� ��� � ���� ������ � ���������� ����� ����� ��� �� ���� ��� � ��� � ����� ��� ���� ��M��� � �� ������� ���� ����� ���� ���� �� ��������� � ������� �� �� ��� � ����������� � ���������� ����� � ����� ������� ������ ����� ����������� ��� � � ����� ����H+ ������� ����� � �� ���� � ��������� ��� ��� ����� �� Q��� %��� � ��������� ���� ���� �� - )O������NA������ 0'<,� .N "�I

F� ����� �� �� ���� �� ������ � ���� � ��� ������� �������� � ����������� ����� � ��� ��� ��� �� � ���� ���� � ���� ��� )�, ��� � �� ���� ����� �� ���

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

9#���� ��� �� �� ���� �� �� �� ��MM �� ���� ��

!)�� ���, C �� ��� ��� � ���� J .� )�,

���� � ��� � ���� ���� ������ ��������� �� ����� ��� ��� ��� �� �� ������M�� �� ������������ �������� ������ ������ � ��� ��E���� ������ 9��� ������ ���� � ��� �� ��� � 5��������7 �������� �� ������������ � ���� ������� . � ��� �����1 � ����� �� ��� �������� � � �� )�, ��

!). .. ., C . ...� .. .� ......�

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

�� J ! ....� �� J ! . .� �� J �'0. � �� J ! .� � J �00<�� J � ..� �� J � . .� �� J � ..� � J � .....� ��� J .�

)�,

Page 82: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� '

��� ��� �� ���� �� �� ��� � ����������� �� � � � ��� � �.� � � � � � 0� ���� ����

� � � J������

���� J .� )�,

���� � �� �� � ���� ���������� ������� ��� ������ �� � ��������� ���� � ������� M�� �� � ������ ������ ;� ����� �� ��� ����

'" -C .<!"

.< "0

���:'"

C .-*'

.-"'<

���-:!*

C .'":

.'!:0

���!< '

C ."-<

." <:

��� ������� ����� �� ��� ��������� �� �� �� �� �� ������ � )�,� �� ����� ���� �� � ��� � � ��� ����� ���� ���� �� ���� ����

�� J . � � � � � 1 )��,

��� ��� � ����������� �� )�, ��� )�, �� � � '� 0��P�� ��� �� ���� � � ��� � � �������� � ��������� �� �� ���� �� �����

+ ������ � �� ����� � ��� � � .@� ���������� �H�I� ����� � ���� ��� �������� �� � �������� ��#����� )��� � � � � ���, ��� � ���6 ���� ��� � � �� ������������� � ��� � �� ������ �� � ���2

��� H������ �M��I &�� ���� � � � ��� � . � � � 0� � ����

���)� � ,�� � � � � ���� � ���� � �� � � � � .�

��� H�����I � � J . ��� � )��, �� ��� ������ ��� �� ����� �� � � � ����

��� H&����I &��� � � J .@� P������� ��� � � �H�I� � � � � )���� � ��,� ����� �� � � � � C � ��� ���� �� +!�

&��� +" �� /������� �� ��� ��� ���� �������� �� ���� ���� ���� � �������� � � ��� )���� � ��,)���� � ��,� 9��� ������ .@ �� "�-!<�<..� � �� � ��� ��������� ��������� �� ���� +" �� �� ���� � ���� ��� ��� � /�� ����� �� � � ������� � ������ �� � ����� ��������

+� � �������� �� ���� �� �� ���� � �� ��� � ���#�� �� ������ R�������� �)�, �� ��� ���1 ��� ����������� '-*<.!:"0 ��� ":*-!< 0'. ���� �� �� )�, ���)��,� ����� �� ���� ����

'-*'< C '-*'< C '-*. J !:'- C "-<.!.

���":*-:! C ":*-:! C ":*-< J 0:* C '*!< <�

;������� � J �� �� )�,� �� �� ��� ������ ��� ��� �� ������ �� ��������������� ������ �������� �� � ��� ��

P� ��� ���� ���� )�, ���� ��� ��� ������ �� ���� �������� �� ������ ��E���� ����������� ���� �� �� ��� ��� ����� �� ���� )�, ���� ��� �� ������ �������� ������ ����� �� �� ��� �� �� � �� ����� �� ����� ��� �������������� � J ��� J .� �� ����� � �� � �������� ���� � �������� ����� �� ���� .�� ����� ��������� ��� J � � � J ��� J .� ��� ���� � ��� �� �������� �� ���� ) .��,@ ����� �� ��� �� ������ ����� ���� ��� � � � � � ����

Page 83: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

< �� �������� ������� � ����� '�!� �!

� ����� !���"��#� + ���� ���� � ������� ���� ���� ������� ���������� ����������� � �������� ��/����� ��� ��� ���� ��� �� ������������� �� �� ��� � ��� �� ��� ������� �������� � ����������� ���� �� ��������� &������ �"�"� ;� ���� ������ �� �� ������ �� �������� � ���� �� �� �����.6����� �������� ��� ������ ���� � � � ���� � ����������� � �.� � � � � � �� �������� � ������ ���� � � � �� � ����������� � � � !� � � � � ��� D�� �������� ���� �� ������� ������� � ��������� ����������� �� ����� ���� � ��� ����������� � ��� �� ��� ����� �� ���� � ����������� � �.� � � � � � � � � �� ���������� ����� ��� ��� �@ ������ � � � � �� ;� ����� �� ��� ���������� � � J * ��

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

.!" � !." � ."! � ".! � !". � "!. � !".� ! ".� "!.� " !.� !" .� "! .1)��,

���� �� �� �� 5����� �� �� ����7 ������� � �� �G��� ��� ������ �� ������ �� �� ��� "! .� "!. � " !.� � � � � . !"� ��� ����� � ����������� ����+����� ��� �� ����� � )��, �� �� ���� ��� ������ �� )����, � � � )����,)����,����� ���� � � � �� ��� ������������ � ������ ��� ����������� � � �!� � � � ����

K���� ��� ���� � ���������� ��� � J !:. *" ��� �� ������ ����� �� ������6 ��� ��

� J�. !"*:

!:. *"

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

� J ). !,) : ",�

���� ��� ������� ���� � ����� . �� !� �� :� ! �� .� " �� � * �� *� ���: �� "1 � 6��� � ��� S)*,� ���� ��� �� ���������� &���� * �� � ���� ����� � �������������� �� ��� ���� 5� ���� *�7 F� � �� ���� .� J !� � J :� ��� �� ��������� ���� �� �� 5��� ����� � � ���� ��7 D� ��� ������� � ������������ ���� ����� � ���� � J :*"! .� �� ���� � ����� ��� ����� �� ��� ���6 ��� ��

�� J�. !"*:

!:. *"

��. !"*:

:*"! .

�J�. !"*:

!:. *"

��!:. *"

".:* !

�J�. !"*:

".:* !

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

�� J ). !,) : ", � ). :,) *,)! ", J ). " * ,)! :,�

O����� ���� ��� ����� � ���� �� �� )��, J ) �,� J :� J .� ���� $����!�

+���� �� � � ����� ���� ��� ���� ����������� �� ��� � ���� ��� ���� ���)�� ���� �� ��,� ��������� ���� �� ����� ���� � ���� � �� ��� ��� ���� ����� ����� �� ���� ��������� �������� ��������� �� ����� ��� ����� �) , J :������ �� ����� �� ����� ���� ��) , ���� � ���� �)�) ,, J �)*, J *� ?��������� ������ ���� ��������� �� ��� ���� ��� ������� ��� �� ��� � ���� �� ��� ������������ �� �� �� �����

��� ��� � �� ��� ������� ����� �� �� ��������� ���� � ���� ����6������� �� ��������� �� ���� � ������� ;� ����� �� � �� 5��� �7 ����G������ � J :*"! . �� ��� ���������� � J !:. *"� ��� ��� � "* .:! �� ��� ��

Page 84: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� 0

��� ��� �� ����� � ��� �������� � �� ����� � ���������� � J ���� � � � ������ ���� ���������� ���� � � � ������ ����� � �� �� J ���� 3���������� �� ��� �� � ��������� �� �������������� �� �� �������� � �� ��1�������� ��� ����� �� � ��������� �� �� ������������ �� �� �������� ��� ��� ����� � ����� �� � ���������� ������� ���� ����������� �� �� ������ ��� ���� ��� ����� ���������� �� ) !,� ������ ��� ���� �� �� )�� ��,�

;� ����� � ������ ���� �� T9������ $� ��� �� <".� � �������� ��� � ����������� �� ���� �� �� � !���� � �� �� � ���� ���� �� ��� �������� ������� � ��� ������ �� �� �� ������� � ��� � �� � ������ � H��� !"�����

�� �!������� ���!����# �� �$!"������ ���� )3���2 0-!,� *'I� (������� ������ �� ��� *6���� ��������� �� � *� * ����

� � � �

� � � �

� � � �

� ! �

)� ,

�� �� ������� '�!� � N '� ��� �� �� ��� ��� � � ����������� � ��� ���������� �� � � � � �� ���� ������ ��/������2 + ���������� � �� �� � ��� �� � �! ��� � ��� ��� !� ��� �� �� ��� *6����� )?�� �� �� ����� ���������� ������ )�� �� � � � � �, �� ����� � ��� ������� ).� � � � � � :,� ��� ��� � �� )� ,�� ������ �� ���� !���� � ��� �� � � ! ��� � ��E� �� �� � ��� ��� ���������,���� ��� �� ������� � � ����� ��� ��� � ������ �� �� �� ��� ��������� �5������������7 � ��� *6�����

$���� � ����������� �� ���������� � ��������� ������ � ������� ������� � � �� ������ ��������� �� (�� �� (� &��� H���� ����� �������

�� ������� ����� )P���2 3������� 0'.,� -0N <"I� ����� �� � ��� � �������� "�� "�� � � � � ������ ��� � ����� ������2 "� �������� ����� � ������������� #�� ���� ����� � �� � ��� ���� ��� �� ��� � � � ������ ��������� �� ������� �������� ���� � ����������� F� �� #�� �� ��� ������������������� ����� �� � ���� ������ �� 1 ��� ���� . � � � �� ��� ������ ����������� ��� �� �� ����� �� � �� ��� � � � #�� � ��� ���� ��������� � �&��� ��� � �� ���� �� ������� � ���������� ������������ � ��� ����� ����2

���� $� ��� "�% "�% � � � % "��� �� ���� ��� ��� ��� � �� ���� ������

�� �.� � � � � � �� �& ���� ����� ������ � �� �� ��# � �������������

� J #�#� � � � #���� ���� #� � "� � � � � �� )��,

#����% � � ��� ���� � ������������ ��� � #��� �� ��� ���������� #������ �"���� ���� � ����� � � �� �� ������� � � ������ � "� � � � � � "��� �� ����� �� � �� � (������ �� � � ����� �� �� � �� ���� � J ��#������ � ����

�� J �#�������

�� � ���������� � ���� ���� �� � ��� ��� � � � ���� ����������� �� ������ ��� "�� � � � � "��� �� � &��� ��� � � �1 ������ ��� ��� � � ��� ����������� �� ��

Page 85: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

. �� �������� ������� � ����� '�!� �!

;� ����� �� � ��� � �� �� ����� ����� ���� ��� ������ � &��� ��� � � �������������� ���� � ��� *6���� ��

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

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

"� J �),� )��,)��,) �,)��,� )��,)��,) �,)!�,� )��,)��,)��,)��,�1

"� J �),� )��,)��,)��,)!�,� )��,)� ,)��,)��,�1

"� J �),�1

"� J �),� )��,)� ,)��,)�!,�1

"� J "� J � � � J "� J �),�1

)��,

��� "� �������� - ����������� #�� � . � � � :� ����� ��������� � ����$ �� $ � ) : � �, � . � $ � :� ��� ��� "� �������� �� � �� ������������������� �� ����������� ���� ���� � ���� ���� � ���� � ������� � �1 ���� �������� � � ���� �� ����� � � � � ! � �� ��� ��� "� �������� �� � ��� ������������������� ������� �� ����������� ���� ���� �� �� ��� � ���� � �� �� ��D��� ����� ���� "� J �),� � � ��� �� ��� � �� �� �� ���� ����� �1 ����� �&��� ��� � ���� � ����� �� ������� �� � � �� � ��� ����� � ������������ ������ ��� ���� ���� ����� �� #���� ����

��� &��� ������������ )��, ����� �� ���� �� ���� � � ����� ���������� � ��� �� 2 ;��� �� �������� #��� J #������ � ���� � ����� �� �� �� ��� ��

�� �� J �#����1 ���� �� �������� #��� J #������� � ���� �� ����� �� ! �� ���

��� �� �� ��� J ��#����1 ��� �� ��� � �� ��� ����� ��� �#���� #�� ���� �������� �� "�� ��� ������ ���������� � ���� ��� �� ��� �� � �� ��� ���� � )��,����� ������ ���� ����� � �� ��� �������� ��� ������ #�� #�� #�� #�� ��� #��

;� ����� �� �� � �� ��� ���������� )��,)��,)��,)� ,)��,)!�,� ����� ��6������� �� ���������� )� , ����� ��� ���� ������� ��� �� �� ��� &���� � ���� ��#� �� �� ��� �������� ���������� ),� ��� �� J �� ���� #� �� ��� ����� � "����� ����� � �� !� ���� � )��,)��,) �,)!�,� ��� �� ��� ��� J )��,)� ,)��,)��,����� ���������� �� ���� �� "�� �� � �� ������ �� ����������� � ��� *6�����

(������ �� )��, � �� ����� �� ���� �� ������� � � ������ � ��� ���6�������� ����� F� ���� � �� ������ � ����������� � ��� ��

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

���� #)�� ��, �� ��� )�� C ,�� � ����� � "� � . � �� � �� J �"�� ��� � � � �� ����� ��� � ������ � &������ '�!� � ���� ��� ������ � )�� ,6��� �� )��� � � � � ����, � ��� ��������� ������ )��� � � � � ����,�

%���� �� ����� !���"��#� P� ���� ������ �� ��� ���� � ��� ������6����� �� �.� � � � � � �� �� ��� �� ���� ���� ���� ��� "� � � &��� ��� � �� ��������C � ������ �#)�� .,� #)�� ,� � � � � #)�� �,�� ���� #)�� ., �� ��� �������� ��� �������� ���� � �� ��� �� ��� �.� � � � � �� � �� ���� ��� )����� � � ������ ��������� �,� 9��� ���� &��� ��� � ���� �� � ���������� �������� �������� ����� � ����� ��� ���2

��

Page 86: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� �����

� ������ � )&������ ���������� !��������,� $���� � &��� ��� � )"�� "��� � � � "���, ���� ���� "� ��� � C � ������ #)�� �, �� /��� ��������� ����� ������ �������� � ����������� ���� � � � ���� � �.� � � � � � � � �� ������� ���� ��� ����� ��� � �� � � � �����

��� H������ �M��I &�� �� � � ��� ���� � . � . � � � ��

��� H������I )+� ���� ����� ��� �����6���� �������������

��������

�����

���

��� ��� �����

� ����������� ������� �� ��, ����� ��� ���������� ���� � � � �����

��� H+�� �� �� � � � �����I &�� � � � � �� J �� ��� �� � .� � � � C ���� ����� ���� �� � �� �������� ��� � ������ � � J �1 �������� ����� � �� C �

��� H3������I +�� � ��� ���������� %)�� ��,&)� � ,� �� ���� � � � ����� ����� ����� �� ��� ��� ���� �� $!�

+�� ���� � ���������� ' �� ���� � � � ���� ����� �� ����� �� �� �� �. � � � �1 ���� ��������� �� ���� ��� ������� �� ' �� ��� ����� �� ��� K���� �����

%)�� �, J #)�� �,#)�� � � ,� � � � � �1 )��,

&)�, J #) � , � � � #)�� �,� )��,

���� ����� $" ��� $* �������� ��� ������ ����

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

��� K���� & ����� ���� ���� ���������� �� ������� ����� � �����

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

��

��� ���

���� ��� ������� 0 ��������� ���#����� ���� ���� ���� � 3 4�

��� ��� �� ;��� 0 � ������� + ������ $ �� ��� ���� � J *� +��������� )��,� ���� ���������� �������� � �.� � !� "� ��������� �� � ����6���������� ����� ������� ���� . � �� � "� . � �� � !� ��� . � �� � � &��� ������ ��� ��� �� ��� �� �� � ���� � ����� ��1 ����� �������� �� ��� �����������#)"� ��, � ��� &��� ��� � ����� ����� P��� ������ ��� �� ���� ��� ������ ������������� �� ��� ����������� #)!� ��,#)"� ��,� + ����� ��� �������� ���� ���� ���� ��. ��� ���� ���� �� ���� ����.� ������� #)!� ., ��� #) � ., �� ����������� ���������� ��� ����� ����� �� �������� � �#���� ���� +����� �� ��������6���� ����� ������ �� ���� $" ��������� �� ������ �� ��� ���� �;��� 0 �� ��� �������� �� ������ ��� ��� ����������� �� ���� $* ���������� ����������� �������� �� ;� ����� �� ���� ������ ������� �� ! ��!..� ���� $* ���� ��� ��� ��� ����� ���������� ��

%)"� !,&)!,� J %)"� !,#)!� !,�#) � ,�1

��

Page 87: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! �� �������� ������� � ����� '�!� �!

���� ��� ���� �� #) � ,� ����� �� �� ���� ! �� ���� !� ���� ��� ������ #)!� !,� ����� �� �� ���� ! �� ���� � ��� ���� ��� ���� �� %)"� !, J#)"� !,#)"� ,� ����� �� �� ���� �� ���� ! � !..� ����� �� ��� ����� ���6����� � ���� ! � &������ ���� ������ ���� ���� ��� ������� �� %)"� !,&)!,�

�� ����� � ���� �� ������ �� ������ #) � ,#)!� !,#)"� , �� #) � .,#)!� .,#)"� !,��������� )��,�

+ ������ $ ������ � ���� ����� � ���������� �������� )��� ���6���� "',� �� �� �� �� ����� ���� ���� � ��� ������ ����� ���� ������� �� ��� �������� P ����� ���� � ��� ������� �� ���� ��� ������ ���� ��������� �� ���� �� ��� ����� �� ���� ��� ��������� �� ������ � � �� �������� ��� ������� �� �� ������

F� ���� � ��������� ������ ���������� �� ����� �� �� ��� �� � ������ ���� � + ������ $ )��� )��,,� �� ������ #)�� �, �� ��� )� C ,6��� �

#)�� �, J )��� ���C � � � �,� )��,

��� ����� �� ���� #)�� �, ���� � �� ��� ���������� ���� ��������� �� �� � � � ���� ����� �� �� ��� ���� �� J � ��� �� J . � $ J �� ��� ���� �������������� � � � ���� �� . � � � )���� ,)���C , � � � )�,)���,)�C , � � � )�� ,� ;� ����6� �� ���� � J < ��� �� � � � �� J ...".... ��� ����������� ����� �� ������������ �� . "*:!-'� ����� �� )! " * :, �� ��� � ��� F��� #)�� �, �� ������� )��,� 9#�� )��, ��� )��, ��� �� ��� ��� ��

%)�� �, J )��� �,1 )��,

&)�, J ). ,). !, � � � ). � � � �, J ). �,) �� ,)! ��!, � � � J ()�,1 ) �,

��� ()�, �� ��� 5)�C ,6G��7 ���� ������� �� � � � �� �� �� � � � ��� �� ���� ���� &)�,���� ��� �� �� ��� ���� �� &)�,�� ������� ()�,� J ),�

9#������� )��, ��� ) �, �� ��� ���� � ������ ������ ��� ������ �� + ��6���� K ��� �� ��� ����� �� �� �#���� ��� )������� !,� ���� ���� K" �������� ���� ��� � ������������ ��� ���� K* ���� � G��� &��� $* ����� � ���� ��� G�����1 ��� ��� ��������

)��� �,()� � , J ()� � ,)�� �, ) �,

����� ���� � G�� � ���� �� � ������������ �� ��� ���� �� � )��E����, ����6�������� � ���� �� ��� G���

�� ���� �#������ ) �, �� � ������ ���� � ��� �������� ��������

'� )�� �� � � � ��,' J )��' ��' � � � ��', ) ,

�� �� � ��� ���������� ' ��� ��� �6��� � )�� �� � � � ��,� P� ��� �� � ) ,�� ����� � ����� �� ��' �� �� �� �� �� ��'� �� �������� ���� ��� ��� � ����� ����� ������ � � ��� ' �� ��� ����������� �������� ��� ����������'��' )�� �� ��� ���'�!��� � � �� ', ��� ����� � ��� ���� ��� � ������� �� �1�� ���� � �� ��� ���� � ����� � �� ���� ��� � �� �'�

+����� ���������� ������ ���� � + ������ $ ��� ��������� �� 8� Q�P�6&���� H���� �� ) 0-',� *:!1 �� ) 0-0,� -"<1 ��� � �� ����& '& �� ) 0' ,�

��

Page 88: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� "

"-N "0I� ����� � ������ �� �������� �� �������

#)�� �, J )� � � � .,� � ) �,

O�� �� �� � �� �� )��, ����

%)�� �, J )� � � � .,1 ) �,

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

&)�, J ). �,) �� ,)! ��!, � � � J ()�,� ) �,

������� #)�� �, J ). � � � �, �� ��� ���� �� ����� ��� ���� ����� ����� ���������� �� ���� ��� ���������� ������ �� ���� $*� ���� � %)�� ��,&)� � ,������ ��� ������ �� ��2

%)�� �,&)� � ,� J )� � � � .,()� � ,� J ()�,� ) �,

����� P�6&������ � ������ �� ��� ������ ���� � + ������ $ �� ����� ���� $*���� � ����������� �� ��� �� ����� � � � 1 ���� �������� �� ���� � #������������ � �� ��� � ��� �� ����� ���� � ��� ��� � + ������ K� )&�� ���6���� "<�,

F� ��� �� ���� ����� �� ������ ������ �� ���� ���� $* ����� �� �� �� � ����� � ������������ ���� ����� �������� �� �� + ������ 3 ��� ��� �������� ��� ��/����� � ������� D��� ���� ������� �� ������ �� ��� ���� �� ����� ��� ��

%)�� �,&)� � ,� J

�)� .,� � � �� �����

)� �� ,� � � �� ����) �,

�� ��������� �� %� 8� ?��� H����& '& � ) 0-",� !0"N!0*I� O����� ���� ?����������� � ���� ��������� �� �� ������ ���� � J "� :� � � � 1 ��� ��� �� �� � ���� : � ���� - ������ �� ����� � !� 9������ *. ����� ���� ?����� ���������� ������ ������� � ������������

&'������ ��"��� ( ��#�� P�� ��������� ��������� � + ������ $ ������ �� ��� ������ � ����������� � �� � � � ���� ���� �������� ��1 ���� ������� ������ �@ ��� �� ���� �������� �� ������ ��� �� ��� ������ � ����� ���� �� ���� � ������� � ��� ��� � ������ �� � � � ���� ���� �� ������������ ��� ��� �� ���� ������ ��� �� ��� ���� #���� � ��� � ����������� ������� ���� ��� �������� � ���� D�� ������ �� �� ��� � �� ��� ���� $! �� ���� ����� ��������2

����� H+������� �=I � �� � � � ���� �� ��� �� �������� � ���� �� �� $!� � P��6����� ��� � � �� � ���� � � .� ����� ���� ����1 � � J .� ������ ������ $!�!�

����� H&��� ���� ����I � �� J �� ��� � #)�� �,� �� �� � � � ����� ��� �� � .�� � � C � ��� ����� ���� �� � �� �������� � � J �1 �������� ����� � �� C � ��� � %)�� ��, �� �� � � � ����� ��� ���� �� $!�.�

����� H������I ����� ��� ���������� �� � � � �����

&��� $ ���� � � �� ��� � � � � � O����� ���� ��� ��� ����� �� ���� �������� ��������� )��,� ��� � ������ ��� ������ ��� ���� ������� �������

��

Page 89: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* �� �������� ������� � ����� '�!� �!

�� ���� �� ���� ��� ����������� %)�� �, ��� #)�� �, �� �������� �� ��� ����6������� %)�� �,&)� � ,� ���� ����� �� $*� %�� ��� ��������� ���� ���������� ���� ���� ��� �E��� ������� ��� ��� ���� ����� ����� �� ���������� ������

�� ��

��� ���

��

��� ���

��

��� ���

�� ��

��� ���

� �

��

��� ���

��

��� ���

��

��� ���

���� �� 5������� ������� �� �� �� ��� ��� ������� � -��� 26� �� ������� 0 �� � ������ ���������

;� ����� �� ;��� !. ����� ���� ������� �� ��� ��� � ;��� 0 ������� ����� � �������� ���� �������� �� ����� ..� � ! � ��� ! �� ����������� �� )9��� ��� �� � � � ���� � ��� ���������� �� � � � ���� ����������� � ���( �� � � � �� � ��� ����� ����� �� � � � ��� ������� ��� �����������#) � ��, � � � #)� � � ����, �� ��� �E��� �� � � � �����, &��� $!� ���� ��� ��� ��%)�� �, �� ���� �� ���� ���� � � � ����� �� ��� ���� ��� ��� ���� � � � ����)�C ,���� �� ���� ��� ��� �� #)�� �,� �� ���� �� �� ���� ���� � � � ����� �� �������� ���� � � � ����� ����� �� ��� �� ��� �/����� ���� ! �� ��� �������������� ��� � ������ ���� ��� ��� �� #) � ,�� #)!� !,�� ��� %)"� !,� ������������ �� ���� ! �� ! �� �� !� )���� �� � �������� ���������� ������������ � ���� ���� � J �� �/����� �� � � �� ����� ���� �� ����� ��� ���#������������ ���� � � � ���� ���� ��� ��� �� � � � �����, +�� ���� ! �� �/������%)"� ", ����� �� �� ���� "� ����

O������ ��������� �� ���� ��������� � ��� �� � � � ���� �� ���� ���������� + ������ $ �� �������� � ��� ���� �� ��������� � ���� �� � � � �� �� �������� ��������� � �� �� ���� �� ��� ���� � ��������� ����������� �� � � � ��� � � � � � � �� ��� ����� ���� � ��� ��� �� ��� ����6���� ���� P� ������ �������� ��������� �� �������� �� ���� ���� ��� � � � � ���� ��1 ��� ���������� + ������ $ �������� � ������� ���� ���� ���� ����� � � � � ���� ��� + ��6���� $�� ����������� ��� ���� �������� ��� ���� ���� ��� ��� �� � &������ � ������ ����� � �� ���� �� + ���� ������� ���� ���� �� ������������� ���� �� �� ��� ��������� �� �������

F� ��� ��� � ����� ����� �� � ���������� ������� �� �� � �� � ����� � �������� ������� � ��� �� ��� � ��� ����� �� � ��� � �� ���� �� �������� � ��� � �� � � �� �#�� � ��2 F� ���� �� ���� )�C � �, ��� . J . �� ������� ��� ������ ���� ����������� ��� �� � �������� �� �������������

�� ����� � � )� �� ��� ������� ���� � . ���� ������� ��� ���������� �� ��� �� ��� ��� ��� ����� ��� ������ ����� �.� � � � � � 0� �� ���� )� �)� � � � � � ) � ;� ����� �� �� �� �� ��� ��� ������ ��� �� )�,� �� ��� � ���).� � � � � � 0, ��������� � � )�� � �� �� �� �� �� �� � �,� ��������� ��� ���������

�� J .� �� J � .....� �� J ! ....� �� J � ..� �� J � ..�

� J ! . .� � J ! .� �� J � . .� �� J �'0. � � J �00<1

��

Page 90: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� :

����� ))�� � � � � ) , J )�� :� *� !� !� � � � .� .,� O�� � �� ��� �� ���� $!�. � ��� �� � � ���� )��� J )�� �� ��� ��� ���� ��� ��� �� � � � � �� ���������� ��� ��� ���� C � � �C � � �� � �� ��� � � .���� � + ��� )��, �� � �� ���� �� � � � � �� ���������� � � �� J . ��� � � � 1 ��� ���6 ���� ��� � �� ��� � � !� '��

P� ������� ������� �� � ��������� ���� ����� + N+" ����� ���� ������� �� �� ������ .@ ������� ������ �� ������� ���� ��� ���� ��� �����6�������� ����� ��� ��/�����6������������ ������ � ���� �� �� ��� �� ���� �� �- ����� ������� �� ����������1 ��� ��� � .@ �� "�-!<�<..� �� ��� ����������� ���� � ���� !! ��������� ���� ��� � ��� � �������� ����� �� ����%� �������� ��� �������� + ������ $ ���� ?����� ������ ��� ��� ����E� /����������� �� ��� � �� �� ������ �� )�, ���� ��� ���� !< )������@ ������� ���6�������� ������#�� ��� ��� ���� '. ����� ���� ���� ��� �������������� ����� ���� � � ����� ���� � ��� ��

D��� � ��� !< �� ����� �� ��� ��� ������� �� ����� ��� ���� %)�� ��,�� ���� $!� � ��� ���� ����� ������� ���� ����� � �� ��� �������� �#)�� �,� �� ���� ����� ��� % �� ������ '< ! ����� ��� � #� �� ������ �� � ! -!������ ��� ����� �� ���� �� ��������� �� ;��� !.� ������� ��� 5�����������7 %)�� ��,&)� � ,� �� ���� $* ��� � ��� ��� ���1 �� ���� ���� �� �� ������ � �� ������ ���� � ���� �� ������ ����� ����� ������ � ��� ��� �������� ����� � ���� ����� � �� % ����� ���� ���� �� ��� ���� ��� #� ��������� ���� ������ ��� % ����� �������� �� � ��� �� ��� ����� ���� ����� ���� ��� ����������� �� ����� � �������� ������� ���� ���� #)�� �,� ��������� �� � ����� %)�� ,� %)�� !,� � � � � %)�� �,�

���� ��� ���� ���� � ���� ?����� ������4����� ���� �� ���� ������ ��������M� ��� ����������� %)�� �,&)� � ,� �� ���� ���� ��������� �� ���� $*�� � ���� � ������������4 �� ��� ������� � ���� � ��� �������� + ������ $�� ��� ���������� � �� ����� �� �/����� �� ���� $!�.� ��� ���� � ������� �� ���� � ����� %)�� �, ���� �� � ���� � ���� � ������������� �� ��� ������� ��������� )��� )��,,� ������� + ������ $ ���� ����� �� �� ��� �� ������ � �������� )�, ���� �� � 0' �� ������

&��� � ��� �� ���� ���� ������ �� ���� � �������� ��� ���� ;� ��6��� �� � �� ��� � ��� �������� + ������ $ �� ��� � ��������� �� ������� !*����� )�, ������ )�,� ��� ������������ ���� �� ��������� �

):: � .� *� <� ":.� <*� :"� :0<, �� ����� ���� ?����� ������1)*!0� <*� .� :� !:-� -"� '� <0, �� ����� ���� ����� �� ���

) �,

��� ������� ���� � ����� �� �� �� ����� ����� ��� ������� �� ���� ������� + ������ �� ����� �� < �� ���� )�, �� *!.. �� ���� )�,� ��� �� �� �����<. �� ��� ������1 ?����� ������ ����� �� ������ ������� � ����� -.�

F� ���� �� + ������ K� ������� ���� ����������� ��� �� ���� � ���6� �� ��"��� ��� ���� ������� � ��� ����� ��� � �� � � � �� ���� �� + ������ $�+�� � � ��� ��� �� + ������ K ����� ���� �� ��� ������ ��� ������� ��������������� �� �#���� � ����� �������� �� ����� � ����� ��� ������� � ���#������ ���� ��� ������� � ������ �� �� 6������ �� � ���� ������ �� ������� ���� ���� �� ������� �������� � ����� � �����������2

��

Page 91: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- �� �������� ������� � ����� '�!� �!

� ������ ) )�� ��!���"� ���������� ��" �� ������ ���( � ,� ���� � 6������ �������� � ����������� ���� � � � �� � � � !� � � � � �� ���� ���� � �������#����� � �����

��)��,� ��)��� ��,� � � � � ��)��� ��� � � � � ��,�

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

� � � � � � �� � ���� � � � � ��� J �*�� � � � � *����� ���� *� � � � � � *���� ) �,

���� �� ����

� J *�� �� J *��� � � � � �� �� ��� ���� J .� )��,

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

)�� H������ �M��I &�� � � � C � . � � � �� ��� � � .� ���� ��� � � �

)�� H9��� ��� ��I &�� +� .� � � ��

)�� H���� �� � � � ���I &�� �� � �� � ��)��� � � � � ��, �� � ��� �� �� U:� P��������� � J �� ����� �� � � � �� ��� �� �� U-�

)�� H������� ��I &�� !� � +� � � �� � � � C � ��� ���� �� U!�

)�� H������� ���I &�� +� �� � � �� � � J . ���� �� U"�

)�� HA������ ��I &�� � � �� � ��� �������� � � J .� P������� ��� +� !��� � ��� � � �� ��� �� �� U:�

��� ����� ���� � ���� � ����� � ������ �� ��� �� D� (� 9 H����& '& �� ) 0<',�!<!I� F� ��� ��� � �� �� � ��������� �� �������� �������� � ���� �� �������������������� �� � � � � � �.� � � � � 0� ��� ������ �� � �� ��� ��� � � � �� ������ ���� � ������ ����� �� � *0 �� ����� �� �� �� ��� ���6������ ��� �� )�,���� �� �� ��� ��� � ��������� � ������� !*)�,N)�, ��

)!*<� "<� *� "� !!� ".� ::� ::", �� ������ )��,

��������� �� ���� �� ��� ����� -: ����� ���� ���� ��� ����6��� ��������+����� ��� �� ��� � + ������ U �� � ��������� �� ���� ���� ��� )���

������� *0,�

� �

���� ��� ,�� ���� ��������� ���#����� �� ������� 7 ���� � 3 4� �� ��� ���� ������� ��� #������ ����� ���� ��������� ���� 2*�� 24� �� *24� � 4*2��

��

Page 92: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� '

*+� ������� � "�� � � � � "��� �� � &��� ��� � � � ���������� ���� ��� ����� �� K���� & ���� ���� � ����� � ��� �� �������� ���#�� � ��� ������ #� � � � #���� ���� #� � "�1 ��� )��,� 9������ :. ����� ���� ����� ����� � ��� � �� �� �������� ���#�� � �� ��� ��� ��

� J #���� � � � #�

� #�

� � ���� #� � "� � � � � �� )� ,

��� ���� ��� ���� �� ������ ��� ��� � � ���������� ��������� �� ��6���� �� ���� �� ��� ���� � � �@ ������������ ���� ���������� ��� ��������

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

�#) � ��,�� )��,

���� . � �� � � � � � � � ��� ��� ����������� #)�� �, �� ��� ���� ���� + ������ $� O��� ������� �� ���� �� ��� ���� ���� ���� � ��� �� �������� �� �� �� ���� �� �� � ������ � � ��E���� ����2

� ������ , )���� ���������� !��������,� $���� � &��� ��� � �� �� + ��6���� $� ���� � ������ �������� � ����������� �� � � � ���� � �.� � � � � �� ������� �� ���� ��� ��� � �� � � � �����

,�� H������ �M��I &�� �� � � ��� �� � . � . � � � ��

,�� H������I )+� ���� ����� ��� �����6���� �����������

�����

��������

�����

��� ��� �����

� ����������� ������� �� ��, ����� ��� ���������� ���� � � � �����

,�� H+�� �� ���� � � � �����I &�� � � �� � � �� J �� ��� �� � .� � � �� � �������� ���� � J . � �� � �� �������� ��� � ������ � � J .1 ����������� �� � �� C �

,�� H3������I +�� � ��� ���������� %)�� ��,&)� C ,� �� ���� � � � ����� ����� ����� �� ��� ��� ���� �� ?!�

+ ������ ���� � ������ ���� � ���� �������� �� + ������ $� ��� �����������% ��� & ���� �� ����� �� ���� ?* �� #���� ��E���� �� ����� ������ �� ���� $*���� ��� � ��� ����� �� ��� )��, ��� )��,� ��

%)�� �, J #)�� �,�#)�� � � ,� � � � � �� )��,

&)�, J #)�� � �� ,�#)�� !� �� !,� � � � #)�� �,�� )��,

��� ����� � ������� ����� �� /��� �� ���� �� �� ��� � + ������ $� �� ���� ������ �� ��������� �� � �� ����� ���� ���� ������ ����� P�� ����� ���� �� �� ��� � ������ ��� &��� ��� � ���� ����� + ������ $ ������ ������� �� ���� ���� �

#)�� �, J )��� ���C � � � �, )��,

�� �� )��,� ��� ��� ���� ���������� ������� ���� ��� �� �� ��� ��� � ������� �� ��� ������ � � ��� �������1 �� �� ��� ��� ���� + ������� K ��� 3�� �������� � ��� �� ���� ����� )&�� ������� :!�,

+����� ����� ���� �� �� �������� � &��� ��� � � ����� ���� ?* � ��������� � ���� � ������������ � ��� � ������� �� ��� ��� ���� ��� ������������ ) �, ���� �������� ������� ������� �� ���� $*� %�� ���� � ������� ������� ��� �� �� �������� �2 F� ������ ������� �� ���� ���� � J *� ;� �

��

Page 93: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

< �� �������� ������� � ����� '�!� �!

�� ���� ���� ��� �������� ���������� �������� J . !"� ��� ���������� �������� �� �� ����� ��� � �������� J .... �� ... �� ...! �� ..." ���� ������� "1 ��� � ���� �� �������������� ���� ���� �� )" �,� )� *,� ��� )* �, � �������������� �*� � �.� � !�� ��� ���������� ����������� �� �������� J ..."�� ��� #)"� ",� J )* �,)� *,)" �, J )" � * �,1 ��� ��� ���� ����������� �������������� �� �������� J .. .� �� �� #)!� ,�� ����� ���� �� ��� � ����� "���� �� � ������ � ������������ �� )" �,� ����� #)!� ,� ���� �� )" �,)" � * �, J)� * �,� &��� � � �� ��� ���� #)!� !,� ���� �� )� � *,� ��� ��� ��������������������� �� �������� J ..!" �� �� )" � * �,)� � *, J )" �,� &��� ?* �� ����������� �� ������ ���� �� ��� ���������� #) � ,�� ����� ��������� �� �������� ��� � . .. ���� � ��� ..!"� %�� ��� �� � ������������ ���� �� ������)" �, ���� � ���������� ���� ���� ! ��� " �� )" �,1 ��� ��� ��� ���� ����������� �� ���� � �� �� ������ �� #) � ,��

��� ��� �� ��� �������� ������� ����� ���� �� ������ ��� + ������ ?�� ������� � ����������� ���� ��� ������� ����� � �������������� %�� ��� �� �������� � ���� � ��������� ������ ���� ����� ��� � ��� �� ��� ����������� ��� ��� ���� � ������ �� #���� ��������� ������� �� ����� �� �� ���� ����� � ���� �� �)�� , ������ )&�� ������� :"�,

;��� �� ���� ������� ��� ��� � P�6&������ ������� ����

#)�� �, J )� � � � .,� )��,

�� �� ) �,� P��� ����� ��� �� �� � %)�� �, �� ����������� � ��

%)�� �, J ). � � � �,� )��,

��� ���� ��� �� ������ � � ������������ �� + ������ ? ������� �� � ��� ���� �������� ���� ��� ����� ��� � ���� � � � ����� ��� ����� �� ���� ���� J . ������ ?" � ��� �� � � ���� J � � � ������� � )� ,1 ��� ������� ���� �� J .� � � � � � �� ���� ?" �� ���� �� J . � ��� �� � � �� J �� ������ �� ������� ��� ���� ������ � + ������ ? �� � ����

� ������ - )#��������� !�������� �� ����� "�� ,� ���� � ������ ������� ����������� �� � � � �� � ��� �������� � ������ �,�� � � � � ,���

-�� H������ �M��I &�� �� � ,� � � � � ��

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

-�� H&����I 8�� ��� ���� � � � �� �� ��� ��� �� ���� �� � � � ����� ��� ���� �� (!� �� J ,��

-�� HA������ ��I &�� � � � � � ��� �� ���� �� (" � � �

;� ����� �� ��� ���������� ����������� � � � !� "� *� �������� ���� � J * ��

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

Page 94: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� 0

���� ��������� ����������� ����������� ����� �� ����������� ���� � ��������� �� �� ��� ���� ��� ���������� ������� � � � �� ���� � ������������ ������ �� �� ��� �� $� $� K������� Q� H���� �� ) 0-',� !0<N!001�� ) 0-<,� "0!I1 ���� � ������� ��� ���� ��� ����� ������� � �� (� ��������H(���& ����& ������ ���& � ) 0:-,� !.!N!.:I ���� ��� ��� ���� �� �� 8� &���MH)����������������� �� � ) 0-!,� !N :I� ��� ������� �� ������ � � �� ������ �� ��� �������� �� ����� ��� �� ������� �� ������� � ����� � ���� ���6������� ����������� �� ����� ���� �� � ������� ������ ������� � �� �� ����

��� ���� ������������ � ��� ������� �� ���� ���� ���� � �� ��� ������� �� ���������� ���� ��� � ���� � ����������� ���� �� �� �������� ��6����� ��� ��� � � ����������� ���� � ����� �� �� � ��� ��� ����� ���������� � � � ���� �� ���� � ��� � ���������� ��� ������ ���� )��, ��� ���������������� �� ���������� ������� ��� �@��@ ����������� ���� ���� � � � ���� J.. � � � . �� ���� ���� �� ������ � ����� ���� � � � ���� �� ����� . ������� � ������� !� � � � � ��� � � ! ������� � � �

*.�� ���/� �"� ������ $����� 9� ��� ��� ��������� � ���� ��� � ��E����������� �� ���������� ���������� ����� �� ��� ������ ��� �� ��� � ����� ��� � �� � � � ����� ?�� ������ ������� ���� ���������� �� ��� ��������� �������������� ��� ������ � ����� ���� ������2

� ������ . )*"���" ��� ,� ���� � ������ �������� � ����������� � ����������� � ������ �� � � � ���� �� ����� ���� ��� ��� �� *� � � � *��� ��� �� � � � ���

.�� H������ �M��I &�� *� � � ��� ���� � . � . � � � ��

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

.�� H;��� ��I &�� � � � ���� � �� J �� ��� �� � .� � � �C � ��� ����� ���� �� � �� �������� � � J �� �������� ��� �� � �� C �

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

.�� H; ���I &�� � � � � � � � � � � � �� ���������� *� *�� ��� � � � C �� � � � � ��� ����� ���� � � �� 8���� �� 9!�

O����� ���� ����� 9! ��� 9" �� �������� �� ����� $! ��� $" � + ������ $���� ���� ���M��� ����� ����� ���� � ������� ����� 9� ��� ������������ ��D���� $���� �� 0<'� �� ���� �� ����1 ������� :: �������� � ���� + ���� �������� ����� ���� ���� ��� ��������� � ���� 9:� ��� �� �� ������ �� ��� ������� )��� ������� :-,� ��� ������ ����� � ����������� ������ �� ���� 9:�� ��� ���� .� < )��� ������� :',�

+� �� ������� + ������ 9 ����� ���� ���� ���� ������� �� ���� ����� %���� ��� ��� ���� ������ ���� �� ������� ���� ���������� �� � ������ ���� ������� � �� ��E���� ����� � �������������� F����� + ������ 3 ���� ��/����������������� ���� ��� + ������ 9 ���� ���6� ����� ������ �� ��� � ���� �� ��� ���� �� ��� � � ���� �� 6������ ��#����� � ������� �H I� �H!I� � � � ��H�@ � I� +�� � �� �� ��������� ����������� ������� � � ��� ���� �� ���� �� �� � �� �� ��� ��������� ���� ��#������ �� �� ��� �� + ������ �

Page 95: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!. �� �������� ������� � ����� '�!� �!

� ��� ����� ��#����� � + ������ 3� O����� ���� ��� ������������� ���� ����������� ��� ��/����� ������������ ������� �� � ���� ���� ��� �� �� � ���� ��� ������� ����1 �� ���� ��� ��� �� �� ������

K�� -� �� ��� ��#����� � �@� ������� � ���� ���� + ������ 9 ����� ������ �� �� ���� 9*� &���� -��� ������ ���� -�� �� ��� ���� -� �� ��� ����@� � ������ � �� ������� ��#�����

-� J ! ! "! ! !" ! ! "! ! !*" " "! " " ! � � � � )��,

;� ����� �� � � J * ��� �������� J !"*� ��� ����������� ������� ��+ ������ 9 ��

!"*� ! "*� " !*� "!*� !" *� "! *�

*! "� !*"� ! *"� * !"� *!"� !* "�

"* !� *" !� "*!� " *!� * "!� *"!�

!*" � "*! � *"! � !"* � "!* � *!" �

)��,

*%���� !�"�� ��������� +�� ������ + ������� 3 ��� 9� �� ����� ����� ���� ������ � ����������� ��� �� �������� �� ����� /��� ��� ����� ����������������� � � � � ;� ����� �� O�/������ ��� F� H���������� ���������

) 0':,� 9������ -I ������� ���� � ����������� ��� �� �������� � � J *� �� �� ��� ������ � � � �� �� ���� ���� �� ����� ���� � � � ���� � ������ � � � ������ ���� ������� ������ ���� � ������ ������ � � ��

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

+ ����� ������ ��� �� 8� +� 8����� H(���& �������� (����& ���& ��

) 0*<,� 'N!:I � ��� �� �� ���� ��� �� ���� ����� ���� (�� �� ����� ���� ����������� �� ��� ���� � ?��� ������ ������2

������� 0� ��� �� ��� � ���������� �� . ���� ������& �� ��� ���� ����

��� *��� ��������� )�� �, �� �������� ���� ��% �� �� ��� ���� ������

)�� �� ���, �� ����������� �� ����� )�� *� �,% ���� ������ � �� ���� �� .�� �� .�*�� ���&

)��� ����� � � ���������� � �� ��� ���� �������� ������ � ���� ���� �� �� ������������,

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

�� ������ �� ���� � J # ��� � J % �� ������ �� ���� . J �@� � J �� * J !� ���� J �� � ������� #%� J )! � � � �,� ������ �� ���� ��� ���� �� ?��� ������������ �� ������ � ���� � � * �� ����� ?������ � ?��� ������ ���" �� ���� ��

��

Page 96: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� !

�������� ���� � J *� ������� �� ��� /��� �� ��� !6��� ��

!"*� !"* � "* !� *" !� " !*� !*"� !*" � *!" � !" *� " *!� *!"� * !"� !"*�

! "*� "*!� "*! � *"! � "! *� ! *"� *"!� * "!� "!*� "!* � !* "� *! "� ! "*�

)��,

�� ������� �� !"* ��� /������ �� !"* �� ! "*� ������ �� *! "�8������ Q����� ��� F����� H+������� ������ ���& �� ) 00:,� ':N<"I ��6

������ �� ���������� ����� �� ��� #N% ���� � � J : ��� ��������� ������ ��� ��� �������� � �������� ?��� ������ �������� ��� � ����� )��� 5����������� 7, �� � ������� �� ;��� !!)�,� ���� � �� ���� � ?��� ������ ���� �� J -1 ���� ��� � ���� � ���� ������� �� �� ��� ������� � � '!.6����� ������������� ���� R�������� � ��� �� ����� ���� ��������� ��� �� ������� ����� �������� + �������� ��� ���� �� ���� �� �������� �� ������� '.� ��� �������� ���� ������ �� �� �� ���� �� ������ � #N% ������� �� ����� ���� �� � ������� ������� � ��� �� ��� � � �� ��� � ��� ������������� ���������� 8� (� (������ ��� &� $� F� ������ H����� �� � ������

����� �� ) 00",� !"'N!0"I ���� ����� ���� ?��� ������ ������� ����� �� � � ��� ���� �������� #� #�� ��� % �� � ���� ������� � /��� # ��� % 1���� ��� �� ���� ��� ���������� ������ ���� ���� ��� ����������� �� % ���� ��� ���������� � � ������������ �� ����� � # � � #�� %�� ���������� �� ��� ���� ������ �� ��� ��� �� � ���� ������

9������ -0 �������� � ����� ���������� � ������ ���� �� ������� ����� � ��� ����� �� � ���� ��������� ���� � ��� !� ;��� !!)�, � ���������� ���� � J : � ���� ������� ����� ��� ��������� �� ����� �� � �� 6�������

&�' 5���� ��� ���������� &2 � * 4 )' ��� &2 �'�

&�' 5���� ��� ���������� &2 �'&* 4'� &� *'&4 )'� ��� &* 4'�

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

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

&������ ��� ���� �� ��� �� �� ������ ����������� �� �� ��� � ������������ ����� ���� )���������,� ��� ������ ��� �� �� ����� � � ���������� ���� �� ���� �������� �� �� ����� ��� ?����� ������ ) �,� �� ��������� ��8� &�������� H���� ���� � ����� 3 ) 0'',� :'N -.I�

��

Page 97: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!! �� �������� ������� � ����� '�!� �!

��� ��� ���� �� �� ������M� ��� ���� � ��� ���� ������ ����� � ����� $!��� $"� ���� � ��� ����� �� ����� � �������� ����� �� ��� ��������� � ������� � ������� !� �� ��� / ������� ��� �������� � ��� ��� ���� ����� ���� ��� ���� ��� ����������� �� �� �������� ���� �� �������� ����� ���� ��� ��� ������ � ����� �� ��� � �� � �� ��� /�� �� � ���2

"#$% �&�'('�

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

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

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

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

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

)� ,

)?�� �� �� ��� ������ � �������� ��� ����, + ���� ��� ���������� ����������� ����� ��� � ������� ��� ���� ������ ���� !� �� ��� /� ������ �� ���6���� '-� ��� ��� ���� ����������� �� ��� �������� ������� ���� ���� �� �������� �� � �

� ��� ����� ��� ���� ���� �� ����������� ��� �������� ���*0 ������ � "#$% ��� " " �� ���� �� �� �'('�� ����� �� ���������� �!�''1 C :�-00 ���� ���� �������� � �� ��� �� ������� !� �� /� ,� ��� ��� ������ )� , �� !* �� � �� �'('�� ��� ������ ���� �� ���������� ������ ����� !� 01 C "�.'0� +�� ���� ) ������� ��� )@ �'('��� ������� '' ��������� ��� ���� �� )! C 2) �)@,,)1 C 0,� ����� �� ��� ��� � ��� ���� � ��� �

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

�������� � ����������� �� � ��#������ ���� � � �P �� ��= F� ���� ����������� ��� �������� ������ ����� �� ��� ����������� �� ����������� ��������� ��������� ���� ������ �� �� � �� ��� ��� ����������� �� ��E���� �������������� ���� �� ��� ����� �� ���� ���� ���� ��� �� ���� ��� ������ � ������� � ������ �� ��� ��������2

���� � � � ������������ � � � ����� )��,

� �� ��� �� ���� � � � ���� �� ������ )�� ,@ ������������ � ���� ������������ ������ ���� ������� � �� ����� ��� � �������� ������� � ���� �� ��� �� ���� �� �� �'('� ��� �� ��� � �����������

���� � � � ����� �� � � � ������� � � � � ������ � � � ����� )��,

����� � ����� ����������� �� ��� ���� �� ���������� �� ��� ������ �� ������� � ���� ���� � ����������� ��� ���� -�"� ".�/� � �� 2) ��,� H&�� ��� ��� 8����� ����& '& �� ) 0< ,� '"N '-�I

;�������� �� ����� ��� ���� �� ����� ���� ������ ����������� ��������� �� � � &������� � ����� �� ���� �� ��� �� �� ������� � ������6����� � �.� � � � � � � � �� ��� �� �� � � �� ����� � �� �� ���� -� ������� -@ J !.�0!!�'<0�<<<�... ��� '@ J "::�-<'�*!<�.0-�...� ������ �� ��������������� �� �� �� ��� - ���� �� � �� ��������� ��� �� ��� ���� �� �� ����� � ������� ���� �� �� ������������ �� � � ��� �������� ������ ����������� �� ������ ��� ��������� ���� ��1 ��� ���� ������� ���� �� �������� ?����� ��� �� ������� ����������� �� ��� ���� �� � � -*6��� ������=

��

Page 98: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� !"

P�� ����� ��������� �� � ������#�� ��� �� +� Q� $� ������ H)& �& (����,,-,../ ) * D�� 0-<,I� �� �� ��������� ��� ��� � )�H I� � � � � �H:."0I, � � ���6������ ���������� � ����� � ������� ����� + ������ �� ����� ������ �H�I ��������� ��� -� �� �� ��� ���� !. � ���� ���� � -*6��� ���� �� �� ������������ ��� ��� �����

������ !

�����H!.� C �I ���� ��� � � �� ���� ��� ��� �� �. � � � !:!� ���� �H:.*.I J 1 � ����� �� ��� ��� � ������ ���� ��� �������

..�.. �. .�. � ..� . � .� ..� .� . � ..�. �. .�.. � .�.. �. .�. � ..� . � .�..�

��� � ����� ����� ���� ���� ����� ������ �2

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

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

����� ��� ������� � � ���� ��� � ���� ��� ��� ����� ��# �&�&� � � � � *�

�$ ��� �&�&3�� � � � � &222��'��".�/ �&�. ;���� �� � �3 ����� �&�&�

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

)��,

9������ '< ����� ��� �� �&��� ��� ���� �� � � � � ���� ����� ������������ �������� ������ ����� ��������� ���� �� ���� �� ���� ��������� ������ ������� �� ���������� �� /��� � ��� ��� ���� .0� )��� ����������� ���� ������� �������� ���� �� � )1 C :0,�!.1 ��� ��� ����������� ���� ������� ��� ������ ��' ���� �� �� ���� ��� ��� ���� � ����� ���� ���� �� ������� �� :.*.�,O����� ���� ���� �� ��� �� ���� � "#$% ��� " " �� ���� ��� ���� )� ,1 �������� ����� ����������� ����� ��� ���� ��� ���� *0�

F� ���� ������� �� ���� ����� �� �������� K�������� ��� ��6���� �������+ ������ (� &������ �� ���� ���� ��� ������������ � ����� ������������� ������ �� � ���2

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

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

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

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

)��,

��� ������ ���� �� ���������� �� ��� �� � :0 C2) ��,� ����� ������� ������� � "#$% ��� " "� &�� ������� <. � �� ���������� ��� �� ������ )��, ��� ���� ��� ������ ��������� � ������ � ���� ��� ��� �������

��

Page 99: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!* �� �������� ������� � ����� '�!� �!

;��� ���������� �������� �� �������� ��� �� ������� �� ��� ���� ����� ��� ���� �� ����� ����� ��� �������� ������ ���� �� �������� �� �����������

���� ���� ������� ������� � ������ ���� � �@ ����������� � � � � � � � ����� ���� ���� �� ��� �� � �� ����������� ���� ���� ������ ����������� ;������ �� �� ����� �� ��������� �� � �� ����������� � ����� ������� "�! ������� "� ��� ! ������� *1 ���� �� ��� ���� ����������� � � � !� "� *������ �

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

��� ��� �� � ������!��� ����!� ����� �� ������� �� &������ !�!�" �� � �������� � � �������� ���� ��������� �� ��� ����� ��� �� � ������ � ����6������ ���� ��������� ���� ���������� ,� � 3�� � � � � , � 3� ���� , � 3 ��������� , ���� � ������ 3 �� ��� ����������� ���� ��� �� ����� �#���� � ���������� �� �� ��� ����� ��E���� �����1 � ����� �� �� �� ���� �� �� ��� ������������! ��� ��� ������� �� ���� �� ����� ��/���� �� � ��� ��� � �������������� ��� � ����������� �� �� � �� ��� ��� �� � ��������� � ����� �������� � ���� ������ )��� ������� !�!�"N *,�

P� ��� �� &������ !�!�" ��� �� ��� � �!�� ���������� ���� ��������� ��� � ������� %�� ��� �� ���� ���� �� ��� ��� ���� ������������ � ���� ����� ����� ������� �� �� ������ �� ��� ������ ������� ���� ��� � ������, ��� 3 �� ����� ��� � ������ �� ������ �� ������� ������� ��� �� ������� �� ���� , � 3 ������� , � 3� (����#���� � ��� ���������� ! � � � ��� � ���� �� ���� ����� � ������ )� ���� ���� ����� ���������� �� ��� ������ ��� �������� ��� ���� �� ����� + ������ !�!�"� �� ����� ��� ��/������������� ��,

D��� �������� � ����� � ����������� �� ������ ����� � ���� ���� ����� ������ ��� ��� ;� ����� �� ��� ����������� � � � � � � � <� ���� ����

� !� ! � "� " � *� - � '� ' � <

�� �#���� ��� �� ����������� � ��� �� ����� � � � � � !� "� "� "�� ������� ����� ��� � � !� "� *� �� � : �� !� ��� �-� '� <� �� "� F� ���� ��� �� ������������������ � � �� ����� ����� + ������ K� ��� ��� �� �� ��� ������ ����

O����� ���� , ������� 3 �� � ���������� �� � � � �� � ��� �� � � ��� � ��

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

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

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

� ������� � � �� ;������ �� �� ����� �� &������ :� �* ���� � V���� ��� ��� �� �� ��������� �� � � � � � �� �� ��� ��� �� ���� �� ���� ���� �� �� ��������� �� �� �� ������� ���� �� ��� �� ��������� �� ��� �� ������� ��� ��� �� � ��������� � "� " V���� ��� ���� �� ������ �#���� ��� �� ��������� � ��� � � � �

���� ����

��� � ��

� � ��

�� ��� � ��

� ��

� ��� � ��

� � ��

��� � ��

� � ��

�� ��� � ��

� ��

�� ��� � ��

� ��

�)��,

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

��

Page 100: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� !:

F� ����� � �� ���� �� ��� � ����"�! � !� � ������� ���� � � ���� ���������� � � � � � � !�� ���� � ����� ���� �� )!�� ,)!��", � � � ) , J )!�,@�)!��@,���� �� �� ����� ��� ���� �������� �� ����������� ���� ������

��� � ��

�� ��� � ��

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

��� ��� � ��

� � � � � � ������� )��,

+� � ����� � ������ � ���������� ���� ����� ������ ��� ��������� ��V� K� ��� ��� A� 8���� H����& '& �� ) 0< ,� <"N<*I� ��� �� �M�� ���� ������� ��� ����� �� � ��� ������� )+ ������ 3, ��� �� ����� &������ ������ ���� � ��� �� ����� � � � � � � � � � ���� ����� �� �� ���� �� � � � ������������ � ��� ���������� ���� �� ��� ���� �� �� ���� �� ��� ���� � ���� ����� ��� � ���� � ���� �� ����� ��� ��� � ����� � ������� �������� ��� � �������� � �� � � � ����2 F� ���� � ���� ���� �� � � � ������ ���� ���� � �� ��� ������ � ���� ���� �� ������ ���� ����� +�� ���� ���� ���� ������� � ��� �� ���� ����� ����������� ��������

� ������ 4 )+�� ������!��� ��� ,� $���� � � ����� � �� � � � � � � �� ���� ��������� ���� , � 3 ��� ��� , � 3� ���� � ������ �������� � ������������� � � � �� ��� ���� ������� ��� � � � �

� ���� ��� ������ ���� ��� � ��� �������� � �� F� ������ � ����������� ���� �� J . ��� ���� . � � � � � � ��

4�� H������ �M��I &�� �� � � ��� ��� � � � . � � � ��

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

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

4�� H(�� � ���� ��=I &�� � � ��� ��� � ����� � � �� �� �� �:�

4�� HV��� ���� ���I &�� ���� � �� �� � � ��� � � � � ��� ��� � �� $� �� �!�

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

;� ����� �� ������ :� �*? �� � �� ���� ���� �� ����� � *! V���� ��� ����� ��M� "� "� � �� ��� � + ������ � �� ��� � ������ )��, ��� ���� ��� ���������������� �� ��� ��

�����

���

�����

��

�����

���

� )��,

�� ��� ��� � ����� *! ��� ��2

!"*:-'<0

!"*:'-<0

!"*:<-'0

!"*-':<0

!"*-<:'0

!*":-'<0

!*":'-<0

!*":<-'0

!*"-':<0

!*"-<:'0

!:"-'*<0

!:"-<*'0

!:"*-'<0

!:"*'-<0

!:"*<-'0

!-"*':<0

!-"*<:'0

!'"*<:-0

!-":'*<0

!-":<*'0

!'":<*-0

"*!:-'<0

"*!:'-<0

"*!:<-'0

"*!-':<0

"*!-<:'0

":!-'*<0

":!-<*'0

*:!-'"<0

*:!-<"'0

":!*-'<0

":!*'-<0

":!*<-'0

"-!*':<0

"-!*<:'0

"'!*<:-0

"-!:'*<0

"-!:<*'0

"'!:<*-0

*-!:'"<0

*-!:<"'0

*'!:<"-0

��

Page 101: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!- �� �������� ������� � ����� '�!� �!

K�� �� �� ��� ����� � ���� ����� ���� � ����� ��� ��� �� ) � �������� �� ���� ������ �������� �� J � � ) � � � �� 9#���� ��� �� �� �� ��� ������ ���� ����� ���� �� � � � �� � � � � � � � )�� ���� �� ����� ��� � ������ ���� ����� ������ ����� ���� )� ���� ��� ������� ��������� ���� ���� + ������ ������ ���� ���� �! �� ������ � ����� ��� ���� �" �� ������ 4 ����������

4 J �� C � � �C �� ��� � J ��� )��,

+ ��� ���� �* ��� ��� ��� ��������� � �: �� ������ � � �����1 ��� ���� ���� �: �� ���� 4 � � C ������ ������ ��� ���� ������ ���� � ���� ������ �� � ���� ����������� � 4 � � � ��� ��

� ��� � ����� ��� � �� ������ ��� �� 4 ����� �� ���� ��� ���� � �;� ����� �� � ��� ���������� ����� �� + ������ � ��

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

���� �� J � � � � � � ��� �� ���� 4 J �� )�

� C �,� � J �� %�� ��������������� �� � �� �#���� ��� ��

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

���� ������� � ��� � ������1 ���� 4 �� ������ �� !�� J !� � �9������ << ����� ���� � ���� � ����������� ���� �� ��� � ����� ��� �

�� ���� � � ���� ����������� � + ������ � �� �� � �� ������� � ���� ����� ���� �� 2)� C�, ������ ���� ���� ����� ������ ��� � ���� �� ���� ������ ��

����# "��� (�!��� '�� ������� F� ���� ���� ����� ��������� � �������� ���������� ��������� �� ���� �������� ��� ���� � ������� �� ����� ������� ����������� ���� �� ������� � ������ � ������� ��� �� ������"��� ������ ������ � ������� ������ ;� ����� �� ������ -� & ���������� �� ��� ��� ��� ���� ��� �� ����� ����� �� � ��#������ ������ ���� ��� ������ ���� ���� ������ �� � ������ ���� �������� ��� ���� ������ ������� � 2)� �� �, ������ �� &������ '�:�! �� �� ����� ��� � !����� ������������� ���� ��� �� ������ ��� �� ���� � � �#��� ����� �� ���� ��� ��� ���� ������� � ������ �� ������M��� ���� ��� �� ��� �� �� ��� �� �� ����2)��, ���������� �� �� ��� � �� �� ��� �� ��� � ������ � ��� �@ �� ��� ��� ������ � ��� � 9��� �� ����� ��� ��� ���� ��� �� ���� ��� ��� ���� �������� � ������ �� ������ �� ��� ���� � ��� � ���� ����� ������� ������ ������� ���� ������ � �� ������ 3��������� ��������� �� ���� ���� �������� �� ���� ����� �� ��� �� ���� ���������� ��������� ��

��� �����

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

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

��

Page 102: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� !'

� � ?��� @ ,�� ���� � � ���������� ����������� ���� ������ � � ����������������� �� ��� � ���� � ���� ������������ ���� ��� �������� #����� ���� � �.������ �� � �� �� ��� ���� � � ��#�� ���� ����� �� � � � �� ���� ������ � ������� =� �� ���� � � � � �� 3 �2� � � � � � � "��� �� ��� ���� � *24)6�<C�D�� ?�� @ 0�������E��� ������� *� ������� �� � �� �� ��� ���� � �� � � � �� ���������� � ������� = ���� ���� � � � � �� �� ��� � ������ ��� � ��� � � � � �� � �� F ������ G � � �G �� 3 � ��� �� � � � ��� &,�� ���� � ���� � ���� ������ ��� � ������� � �������� ����� �

��� � � � � ��

�3

�9

��9 � � � ��9F

��� .H� )�2��!&�'�' "��� �� ��� ���� � *242)6�<)D

�� ?��� @ ��� �� ��� ���� ��� #������ � ��� � ���� � �������� ���� �� ������� = �� &�' ���� =�� &�' ���� =*� ���� ��� �������� ���� � � � � �� ��� �������� � ?�� @ 1���#� ���������� � ����� �� ��� ���� � ���� � �������� ������ ������� = �� &�' ���� =�� &�' ���� =*� ���� ���� � � � � �� �� � ������� � �������� �� ������� 4� �� ��#� ��� ��� ��� �� ���� ��� ���� ���� � � � � �� �� ��� ������� ������ �� � �� &���' � 2 ��� ?�� @ "��� �� ��� ����� �� � � � � ��� �#����� � ���� � ������������ ��� ���� ����� �� ���� =� ���� ������� = �� ����� ������� � ��� � ������&�' �� � 2� � � �� � � � � � � � D &�' �2 � 2� � � �� � � � � � � � D &' �� � 2� 4 � �� � � � � �� � � D

� �� ?�� @ ,�� ��������� � � � ������ ��� ��� ���� ������ � ��� ��� � �� �������� -��������� ��� #�������� � �2� �� �� * ���

�� 2� 2�� 2��� 2��*� 2�*� 2�*�� 2*� 2*�� 2*���

�� �2� �2�� �2�*� �2*� �2*�� ��� ��2� ��2*� ��*� ��*2� �*� �*2� �*2�� �*�� �*�2�

*� *2� *2�� *2��� *�� *�2� *�2�� *��� *��2�

��� ���� ������ ������ � ������� = ���� �������� ��� #�������� � � ��#�� � ���������� ��� � � � � �� ��� ?�� @ ����� ��� ��� ���#� � �������� ������ �� �������� � �������� ��� ��#�������� � � ��#�� � ������ ���� ��� � � � � �� � ������ ��� ���� ������ � ��� ���������� �� �������� &-� �������� ��� �� ��� � �� ��������� ���� � ������� ������� �� ����#������� � ��� 2� � � � � 6 �'�� ?�� @ "��� ��� ��� #�� �� � ���� � � � ��� ���� � � � ��� ��� ���� � � � �� �� ��� ��� � ������� /� �� ���� � � � �� 3 2� � � � � �� ��� ���������D

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

� ��� ?�� @ "��� �� ��� 2�������� ���� ����� #������ �� &�' ������� =� &�' �������� /� &' ������� �� �� ���� � � � � �� 3 ��� � � � � 6 D ���� �� ����������� ������

�� ��#� 2������ 3 H �����

����

����

����

����

����

���

���

����

��I 3 H ��

������

���

���

���

����

����

����

����

���I�

�� ?��� @ &+����� 0������� 26�4�' ,� � � �����I �� ���� � � � �� �� ��������� 2� � � � �� ������� / ������ �� #������� ��� �9�� ���� ������ �� ���� 2 ������� �F ���� ������� ���� ����� �� � � � � �2�

��� ?��� @ ,� � � �����I �� ���� � � � �� �� ��������� ���� � � � �� �� ������� /� �� ��������#� ������� 3 �� �� ��� ��������� � ���� /)�

��

Page 103: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!< �� �������� ������� � ����� '�!� �!

��� ?�� @ &������ J����� 26<*�' ��� ���� ��� K��� #������� � ��#�� ������ � �� ������� /�

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

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

�������� ���� �� � � � �� �� #������ �� ���� /�� &,�� ��#���� �����%�� ��� 3 � �� ��� ���

�� �� 3 ��'

��� ?�� @ &������ �������������' 1�#��� �� ����� ��� � �������� &��2'9�� ���� ������� ���� ��������� ��� ������� �������� ���� � ��� #������ �2� � � � � � F ���� ���� ��� ����� � �� � � � �� � �� � � � �� ���� �� ��������� �� �� � � � �� �� ���������� ,������ ������ &2�*4� 2*�4� *2�4' ��� �� �������� �� ��� ���� � 3 4�

��� ?�� @ ����� � �� �������� ���� ��������� ��� ���� ������ � � ������� ������������������ �� ��� ������ � ������� ����2�2=�

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

������������ ������ � ���� ����� ���� ������ ����� ������� � ��� ��������� -��������� �*2 �� � ������ ���� ����� ���� ��������� ��� #������ � ��� *� �� ��������� ����� � ������ � ���� ��� �� ��2� ��2 �� �22� � � � � 222 �� 22�� 1������ ������ �������� ���� ��������� ��� ������ ���� ������ � �2� �� � � � � � � ����� ������� ������ ����������� �� ��M���� �������� � ������� ��� %��� ��������

��� ?��� @ &.� /� +���#�� 26�2�' 8� ���� �� ���� ��� ��� ��������� &�' ��#��� ����� �D

��� ?��� @ ,� � � �����I �� �� ��������� ��� � �� ��� �� ����� �� �� ��� � �� ����� ����� �G 2�

�� ?��� @ ,� � � �����I � �� ��������� ���� ��#� �� �������� ������ ����� 3 �� �3 � ���� � �3 ��

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

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

� ��� ?��� @ 1�#��� � ���� ��� � �� �� ���&� � �' ��� ���&� � �' #�� ��� #�������� ������ �� � � � ��� � ��� � � � � 6 � ��#�� ��� ������ �� #��� � 3 &��� � � � � ���' ������ %���������� ��� � � �� ��������� ������� &� � � ���� �� ����� �� �������� � �� � ���� ���� H ���� ���� � ����� ������ � ���������� �� ����� ����������� �� ��#���� � ��� �������� ���� ����� ��� �� � �� ��� �� ����� ��� �������&� � �' � � � ���&� � �'�'� � ?�� @ "��� �� ��� ��H � ��������� �� ��� �

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

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

Page 104: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� !0

��� ?��� @ ��������� � ��� ������� � �� �� ��������� � ��� ��� � 3 ��G� � �G�� ������ � � � � � �� � �� � � � �������� �� ����� ������ ���� �� �&�' 3 �&��'G � � �G�&��' ����� � � �� ���������� ����� �&�' �� ��� N����O � � �� ��� ���� ���� 1 ��� �� ���������� ���� ����� �� �� ��� "���� �� ��� �� &264�'� *C� 42�!424� ����� ��� ������� ��#��� )6%&), 3 $%0%&G $%0%&G $�� ��� � ��� ������

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

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

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

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

� ?�� @ ��#� ����� � ���������#� ���������� �� ���� � �� �� ���I�' )6*� )6* 3 $31(+%� &8� .� 1 ������ 26�6'�' 5�2� 5�2 3 51++(,� &"���� .������� 26��'' 2�� +� + 3 (+%(� &;���� ;������� 26C2'�' &*+)5�$*1)5 3 %($)�6%$)� &$� P���������� 266)'

�� ?��� @ &$� P����������' "��� �� ��� ��H � �� ��� � (� .G'�%4G7�5� 3 2����� �(� � � � � � 3 �2� � � � � 6 D�� ?��� @ &8� .� 1 ������ 26�2�' -��� ��� ���� � ��������� 2�� �� ��������� ��� � ���� ��� � ����� ��� � ���� ����� � ��� ������ �2� � � � � 6 � -� �������� 2�� 362 G )�4��<*C� ,�� �� � ���� �� �� ������ ��� ������

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

�� ?��� @ +��� ��� �H ���� %0%& G *'' G 2+��% 3 � � ��� �� � ���� &�' � �� ������� )�� ����F &�' � �� � ������ ��� �����

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

� ?�� @ -��� � ���� ����� �� ��� �� � � ��� � ��������� � ��� 4�4 ������������

� # " !

9 : ; <

= > � �

� � �

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

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

�� ?�� @ "���� ��� ��� �4 ���� ������ ��������� �� � 3 4 �� &�' Q��������>������ &��'F &�' 8���>� ����� &��'�

Page 105: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

". �� �������� ������� � ����� '�!� �!

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

� ��� ?�� @ 1����� �� �������� ���� ��������� ��� ��#�������� � ��� 2� � � � � � � 2 �������������� M �� �� �������� ���� ���� ��� �� #������� � ��� ����� &���������� 6�' ���� 0�������E� 8���>� ����� &��'� �������� ��� ��� ��� �� ����������� � � � ���� � �� ����� �� � � � ����� -� �������� �� �� ��� ���� � 3 ) ��� � 3 � ��� ��� %��� �� �������� � ��� �������#� ���� ������ �2�*4� *2��4� *��24� *�2�4�4�2�*� ��24*� �42�*� �4�2*� *4�2�� 24�*�� 2*�4�� 2*4��� �*4�2� �*4�2� ��4*2� ��*42�2�*4�� 4�*2�� 42*��� 42�*��

��� ?��� @ ����� � � ���� ����� �� ��� ���� ������ �� ���� �#��� �&�� �' ����#��� �&�� �' �� 2 � � � � �� � ��� � ������ � *�

�� ?��� @ ����� � � ���� ����� �� ��� ���� ������ �� ���� �#��� �&�� �'� �&�'���� �&�� �'�&� � 2'� �� 2 � � � � �� � ��� � ������ � *�

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

��� ?�� @ &�' "��� ��� ��� ������ !� � � � !� ���� ������� 7 #����� ��� ���� �����*24)6�<C�D &�' "��� ���� ����� �� #������ ���� !� � � � !� 3 *242)����D

� � ?�� @ ,� � � �����I "��� ������� 7 #����� �� � � � ��� �� ��#� !� � !��� �� ������ �� �� � ����� �� 2 � � ��

� ��� ?��� @ .������ ��� � ���� � ����� ���� ��� ���� � ������� 7 �� ���������� ����� � ��� � ����� "�� "�� � � � � "�� ����� "� �� ��� � ���� � ���%��� �� � � � ������ ������� ��&��� � � � � ��' �� 2 � � � ��

� ��� ?��� @ ������ ��� � ����� ����� � ������� 7 ��� ������� =� �� ��� ������� ��� ����� ��&��'� ��&��� ��'� � � � � ��&��� ��� � � � � ��' ������ ��� �� ��

� ��� ?�� @ ,�� ����>� � ������� ����� �� ��#��� ������#� ���������� ���� �������� 7 ����������� ���� ������ ��� ����� � ����F �� ���� ����� �� ������� �������#�#�� �� � ��� ����� �����%��� ������ ����� ��������� ������ ���� ������� � ����������� � 2��

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

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

��� ?��� @ ,� � � �����I �� ��� ���� #� 3 ��&�� �'� � � � � �&�� �' ��� � ���� ����� ����� �� � � ��� ���� ������� � ��� � ��� ���� #�� 3 ��&�� �'�� � � � � �&�� �'� �

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

� �� ?��� @ &-� +� �#���' ����� � � ���� ����� �� ���� ������� 8 ���� ����������� ���� ������ �� ������ ��� �9 G$)&�� �'9, ���������������� ?�� @ " �� ������� � ��� ������� �� ���� �* ��� � ��������� ������ ��������� � � � ������ � ���� � � � ����� ������� � � �������� �����D

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

%�&�' 3 ����� � ��� �9 3 � �=�� �� ��� �� �� ���� ������ � ��� ��������#� �������� � � ���� �� �� 3 ���������#�� � � �� =�� �� ��� &� �� ��� �������� ���� ������ ��� �� � � � ��%��

� 3 &����� �&������ & 3 �� �&���

��

Page 106: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� "

-� �������� �� �� �� ��� B�� ������� &2 ��2'&� ���' � � � 3 &� �''&�' ��� �� �� 3 &� �'���� �� ������� . �� ������� ���� �� 3 � �� � � � �� ���� � ��� & ��� ��������� � �� � � � ���� ��� �� � � � ���� ����� ���� .) ��� ���� �������� � ������

�' /�#� ���� & ������ ����� 3 ������� �����

�� &&�����'

����

�' 5�� ��� ��� �� � &�' � ��������� ��� #������� � ������� .�

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

���� ?,������� ������@ �� � � �� ���������� ���� � �� �� � 3 � � �� � � 4� � � � �&� � 2'� A�� �� � .��

��� ?��� @ "��� �� ��� �#����� � ���� � ����������� ���� �� ���� .)D

��� ?��� @ ,� � � �����I �� ������� . ������ ���� �� � � � ���� 3 �� � � � �� ���� ���%��� ���� ����� #������ ������ ���� �� 3 ���

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

� � ?�� @ "��� ���� !�� ������������ �� � ��� &(�� (�� � � � � (����' ���� ��� ��� �#������� ����� � �2� �� � � � � � ��� ��� ��� ������� ���� (� ��K��� ��� ( ���� ��� �� �� ����M���� ������������ �� �� ��� �� �������� �� � 8��������� �� �� � ��� ����������� �� ��� �� � � ��� ���� ������ � �2� �� � � � � � � ���� ��� � � 2 ���������)&2 �'� &� *'� � � � � &��2 �',� ,�� ����� ��#����� � � � � 0��� �� �� ��� ��H ��� ��������� �� � � � ���� � � ����

( ���� ��� �� 3 &� �G2'(��

&��� ����2�2!&��'� ���� �������� ��� ����� � ��� ���� �� ������ ��� �����' -��������� -��� �* ��� ������� ��� 0��� �� ��%��� �� ����� ������ ���� � 3 4F �������� ��H ��� �� &*�2*2�*2'�

�' -��� ��� 0��� ��� �� ���� ������ � �2� �� *� 4 ��' ,� 0��� ��� ��� �������� � �� �H �#����� �� ����� ����� ��H ���� �� ��������� ��� ��� ���� �� ��� �������� &� � � � ����� � � � ���' ���L� ��#�����&���� � � � ��' ���L� ������������ &&���'&���' � � � &������''� "��� ���� 0��� ��� �� &�' ��� �H �#�����D

���� �� ������� / ����� ����� 8��������� �� �� � ����� ����� ������� � -��� )!2�

��� ���

�� ��� �

���

��� �� �

�� �

���

��� �� �

�� �

� ��

� ��

���

���

� ��

� ��

���

���

� ��

� ��

��� ���

��

Page 107: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"! �� �������� ������� � ����� '�!� �!

�� ?�� @ ����� ��� ��� ���#� � �������� � "��� ���$ !�� ������������ �� ���� � 0����� ����� ���� ��� %��� ���� ����� (���� �� �� ��H ���� � �� ��M���� � ��� ����������� ����� (�� �� �� ��� ��� � ��� 0��� ����� �� � 3 4 ���� ����� ���� 2�*4�

� �� ?�� @ "��� ���� ������ �� �� ������ �� ��� %��� ������� � � 0��� �������� ������ �� 2� � � � �D

� ?��� @ .������� ��� ���� � ���� � 0��� ��� �� ���� ������ � �2� �� *� 4� ) � �� ?� @ N� ��� 0���O �� �� ���� ������ �� � 0��� �� ���� ��� ���������������� ���� ��� 3 � � 2 �� ��� �� ����� ��� "�������� ��#� ��#�� ���� � ���� ����� �� ��� � � *� 8� ���� � ��� 0��� ��� ����� �� � 3 )D

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

� ?�� @ .�����>� ���� ����� � ������ ������ ���� � 0��� �� �� ���� ��������� ���� ��� � � 2 ��������� ��� ��� ���� ������������ &2 �'� &2 *'� � � � � &2 �'� -��������� -��� �4 ���� ��� ����#��� ����� ���� � 3 4� ����E� ��� 8����������� ��� � ���� ������

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

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

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

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

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

���

���

���

�� �

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

���� ��� ,�� ������ ����� �� ���� ������ � �2� �� *� 4 � ��������� �� ������� ������������ &2 �'� &2 *'� ��� &2 4'� ����� �� � ������� �� ��

�� ?�� @ ����� ��� ��� ���#� � �������� %�� � %���������������� 0��� �� ��� 3 ) �� ���� ��� ���� ����������� &2 �' �� *� ������ �� � � � � )�

�� ?�� @ &R����>������ ��� =���#���� 26�)�' =�� ) �� ��� ������ ����� �� ������� ������ � �2� � � � � � � ���� ��������� &��� � � � � ��' ����� ��� �� �� � ������������ &!� *�'F ��� ��� + �� ��� ����� ���� #������ �2� � � � � � ��� ����� !� ��� *� ��2 � � � �� /�#� ���� ) ��� � 8��������� �� �� �� ��� ��� �� + �� ������� &-��� �*�� ��� ������ ��� ���� + �� � ����F -��� �4 �� ��� ������ ��� ���� + �� � N�����O'

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

� �2� �� *� � � � � � ���� ��� ����� ��������������

% 3 &2 �'&* 4'&) <' � � � � � 3 &� *'&4 )'&< �' � � � � � 3 &* 4'&) <'&� C' � � � �

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

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

��

Page 108: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� ""

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

��� ?��� � ��� ,�@ ��#�� ������� / ������ �������� � ��� ���� ������� � � � ���� ��� � ��� #�� � � �� �� � 3 �� ���������� ���� � ���� &������� ����� ��� �K�� � ���� /)' ��� ������ ���� ����F �� � � � ��� �� ��� �� ���������� ���� � ������� /� �� � 3 2 &� ���� ������� / ��� ����������'���� � � , � � ��� � � (*� Q�������� ���

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

����� ��� ��� �� �������� ��� ������� ����������� �� ���� /)�

�� ?:�����@ :���� ��� ���� ����� +� � � � +�� ,��� � � () �� +� 3 � ��� +� 3 ,�

��� ? ���� %� ���� ��@ ���������� +� � +�� + � +� +� � +�� � � � � :����+� � � � +�� ,��� ���������� +� � +� + � +�� +� � +�� � � � � ,���������� +� � � � +� 3 2 � � � �� �������� ��� �� � (*�

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

���� ��� %��� ���� ��� �������� ���� �� ���%�� � ���� +� � � G 2 � � ����� � � �� ���� (2� ��� �� ��� NB��O ���� ������

%� 3 &2 �'&� ��2' � � � � �� 3 &� �'&* ��2' � � � � � � 3 &� ��2'&* ���' � � ���� ��� ������� � %� �� � �� ����� (4 ��� ()� �� ���� ���%����� ���� (* �� �� �� () �� +� 3 � ��� +� 3 ,�

� �� ?� @ ,�� �� 2������ &�' �� �� �������� �� �!� ���� �� ��� ����#� ����� ������ � �2� 2� *� 4 I

22*4� 2*42� *422� 4*22� *224� 224*� 24*2� 42*2� 2*24� *242� 242*� 422*� 22*4�

A������� �2� 2 �� �2� � ������ ���M��� ����� ��� �� ������� � 8��������� ���� ��M ����� ��� �� � ��� ����� ��� � �!� ���� �� ��� ���� ������ � < �������� ������� �� � ������� ���� ����� � � *<����� �� ��� ���� ������ � �2� 2� *� 4� )� < D��� ?��� @ 0�#�� � ������ ����� ���� ��������� &��� � � � � ��'� ��� �� ���� ��� ������� � �� ,� &-� �������� ��� � ��� � ���� 2 �� � ���� � 3 &2 � � � � �' ���� 3 &2 �'�' /�#� ���� ��� 8��������� ���� �������� �� 2� � � � � �� ) � �� ��� �� ����� ����� ���� ����� , �� ��

� ��� ?�� @ =�� �� &� ��� � �� ���� ������ � � ��� � ����� 3 + � -� �� ������ �� 3 �� ���� � � + ��� �� 3 �& ���� � � -� ��� ���� ��� ���� � �&� �� ���

�' /�#� ���� ��� ����� ���� ������ �� &� � ��#� ��� ���� ����F ���� ��� ���� ��� ����#�� � ��� ��� ���� ���� ����� ��� �� ���� �� ��� ��� �� ��� ���� �����#� �� �������

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

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

��

Page 109: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"* �� �������� ������� � ����� '�!� �!

��� ?��� @ ,�� ������� �� � 0�0� ��� �� #������ &�� ,' �� � � � �� � � , �� ��� ��� &�� ,'� &�� ,'� 3 )&�G2' ���� ,,� &�� ,'� &�� ,'& 3 )�� &,G2' �� �,�/�#� ����� �� � � 2 ��� � � 2� ��� � ���� � 8��������� �� ��� � ���� ������� ��

�������

��

�H��)&�� �'�� ��, 3 � I� � 3 ��&���'�

��� ?�� @ ,�� ���� � ������ �� 2� � � � � <*�� -��� �) ��� ������ � ����$�������� ����$�%�

���� � �� C � C �� �I �� � ������� �� ���&��� ,�'� ���� &����� ,���' 3 &��G�� ,�G2'� &��G2� ,�G�'� �� � C� ��� &��� ,�' 3&��� ,�'� 8� ���� � � � �� ��� �������� �� �� � �� �� ���� ��� � *D

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

�6 �4 26 24 46 44 *6 *4

)C )* 4C 4* *C 6 4 <*

�* 2C 2* C * <� ** �C

)� 4� 4� *� *� �� �� )�

2� 2� � � <2 )< )2 4<

< 42 *< *2 �< �2 2< 22

*) *� 2 <� )) )� 4) 4�

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

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

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

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

��� ?�� @ ��#� ��� ���#� � ������� ���� ��� %#� ���� ����� ����� ���� 5�� ��*+�

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

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

�� ?�� @ � ����� � �� ��� � �������� ��� �9 ���� ������ � �2� � � � � � � � �������� ���� ��� � ����� �� ���������

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

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

��� ���� �� � � , ��� , � 2� ������� : ���� ��� � �������� ��� ��� �������� �� � � 2�

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

��

Page 110: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� ":

��� ?�� @ ��� ���� ������� : �� �� ��� � �������� ��� ���� � �������� ��������� ��� 2� � � � � 6 ��� �� *�������� ���� ��� �� ��������� �����

� ��� ?�� @ ������� ��� � ����� ��� ��� � � � � �� �� &1'� ������� �� 3 �� 3 2��' ��� ���� ����� � �� N���#���O �� �� 3 ����� -� �������� 6 �� ���#��� ���� ������ ���� P �� ������ �������� &� '� .������ �� � ����� ������� : � ���� ���#������� � ����� � ��� �����#��� #�� ���

�' ����E� ��� � ����� ���� � ��� ���%�� ��������� "��� ��� ��� ������ &1'D' ��� ���� ��� �����#�� ?� � � �@ �� �� � ���� �� �� � �� ��#� 3 � 3G2 �� � � 3 ��/�#� ���� �� � � � ��� �� � ������

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

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

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

�' /�#� ���� ���� � � � ��������� 4 4" �� ��� ��� ��� � ���� &�'�

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

�� � � ���� �

�� ����� �� 2 � � � � � 5

&��� ����� )���2'� ����E� ��� � ����� ���� � ������� : ���� �� ��������� ������� ������ ���� ��� ��� �������� ��� *��������

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

��� ?��� @ 8� ���� ���� ������ �� ������� : ������ � #����� �� � N�����O���D =�� 7� �� ��� � ���� � ������� �������� � �2� � � � � � � ������ ��� � ����� �������� ���� ��� ��B���#�� ������������� ��� ��������#�� =�� 8� �� ��� � ����� � � �������� ���� ��� ��������� ������� ���� � � �����#�� � � �� .��������� ������� � ���� � ���� � ��� � �������� ���������� �#������ #�� ��� ���������������� �� ����� � 7� ��� 8��

��� ?� @ /�#� ���� ��� ������� ���� �� �� ��������� �� � � � ��� ���� ����� � �� ��M���� ������������ ��� ���� �� ��� ����� &,�� ������� 2 � �� * � 4���� ���� � ������ ����������� ��� ���� ���� ������ �� ����#��� �#�� �� �� ��������M���� ������ ��� �� ��� �� � ��� ��� ����#��� ���� ������ ��� ���'

� �� ?�� @ ��� ���� �� ��� ��� � ��������� ���� ��� �������� �� &�6'� ��� ����������� �� �� ��������� ���� M �� �� ����������� ��� �����

��� ?�� @ 1�� �� �� � �������� ��� ��&��'� ������������ � �2� � � � � � � ������ ������ � � � �� � � ���� �� �� � � � � � � ����� ?�� @ 1�� �� �� � �������� ��� ������ ������������ � �2� � � � � � � ������ ������ � � � �� ���� ��� ������������� ������ � � ������ ������

� � ?�� @ 1�� �� �� � �������� ��� ������������ � �2� � � � � � � ������ ���� �� � � � ��� � ���� �� �3 2� �� �3 �� � �3 *� � � � ���� ?�� @ ����E� ��� �������� � ����� ���� � ��� ����� �� ��� ���#� ���������

��� ?�� @ 0�#�� � � *� ��� ���� ��� ������������ � �2� � � � � � �� �� ����������� ������ �� ��� �� ������������ ������� #������

��� ?�� @ 1�� �� �� � �������� ��� �������������� ���� ������ � �2� � � � � � � ���������� �� � � � �� � � ���� ���� � � � � �� �3 �2� � � � � � �� 2 � � ��

�� ?�� @ 1�� �� �� � �������� ��� �� �������� � �2� � � � � � � ������ ���� ���� ������� �� � � � �� ���� ��� � � � ��� 3 2 � � � ��

��

Page 111: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"- �� �������� ������� � ����� '�!� �!

��� ?�� @ ��� ���� ��� ��#� ���� � �2� � � � � � �� �� ��������� �� ������ ����� �� ������������ ������� #������

��� ?�� @ ��� ���� ��� �#�� ���� ������ � �2� � � � � � �� �� ��������� �� � �����#� ��������� �! �$��� ��������� � ���������

� �� ?��� @ ���� ����� �� � � � �� � �2� � � � � � �� '���&�������� ����

���

��� 3��

���

&�G 2� �'���

-� �������� *24� �� ������������ ���� � 3 4��' /�#� ���� � ���� ����� �� ������������ ���� ��� 4 3 ���' /�#� ���� �� �� � � � �� �� ������������� � ��� ��� ��#����� �� � � � ��� ��� ��������&�G2���' � � � &�G2���'� ��� ��� ��#���� �

�� � � � �

���

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

� ��� ?�� @ '��� ����� �� � ������� � ���� �� ��������#� &� � , ��� , � 2 �������� � 2' ��� ������ &� � , � , � � ������ ����'� "� �� ����� � � , �� � � , ���, � �F � � , �� � � , ��� , �� �� ,���� ��� �������� ���� ����� � ����� ���������2� �� * � ������

2 � � � *� 2 � � � *� 2 � � � *� 2 � � � *� 2 � * � �� 2 � * � ��

� � 2 � *� � � 2 � *� � � * � 2� � � * � 2� * � 2 � �� * � 2 � �� * � � � 2�

�' .������ �� � �������� ��� ���� ����� � �2� � � � � � �������������� �� ��H ����� ������ ��������� �� ��� ������ � � ��

�' ���� ���� �� ��� �� ����������� �� � ��H ��� �� � � � �� ����� �� 3 � �� ��� ������� �� � � ������ -� �������� ��� �������� ���� ����� � �2� �� * ����������#��� ���� ��2� �22� �2�� �2�� ��2� 2�2� 2��� 2��� ��2� 22�� 2��� �2� �� �������� -��� � ������ ��� � �������� ��� � � ��H ���� � ������ ��

��� ?��� @ ��� ������� 2�4&�' �� ��#�� ���� � 0�������� ����D

� � � ?� @ &J�� 8� ������ 26�*�' , ���� ��� �������� ���� � N�������O ������� �� S��� � ��� � � ���� ������� �2� � � � � � ��� ���� ���� ��� � �� � ����� ,����� ��� �� ��� �� � � 2� ���� � ��� �� � ���� ��� � � ���� ��� � �� � ��� ������������ ������� ��� ���� ����� ��� �� � � � �� � �� � � � ������ � � � ��� ����� � ������� �� ��� �� 2� -� �������� ��� ������ ��H ���

*24)� � 42*)� � )*24� � �42*) � 4�2*) � *2�4) � �2*4) � 2�*4)

����� � ���� � 3 )� "��� �� ��� ������ ��H ��� ������� ���� � 3 2*D

��� ?�� @ �� ��� ������ ����� ���� � ������ ��� ������ 9&�'� ��#� ���� 9&�' ����� � 2���� ?�� @ -��� �� ���� ��� ���� � ��� � ��� ������ � ���� 9&�'�

� ��� ?�� @ -��� ��� ���� ������ �� � � � �� � ��� � � � � 6 � � �������� ��� �� �� 3 ��� )� �� C �

���� �� �� 3 ��� *� < ����� �� ��� �� 3 �*� 4� )� � �

���� �� � 3 ��� �� C � �� � ����� �� �������� �� ��#��� ����� ������� � ���� �����

��

Page 112: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ������� ��� ��� ����� "'

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

�������� ����� �� �� ;� "� J���� �� ������� ����� ��� &266*'� 242!2)�� ������� ��� � �9 ������ � � ���� ��� ���� ����� � �2� � � � � � �� ������ �� �� ���� � � � 2 ��� ��#� ������ &���� ��� ��� ����� %��� ������� � ��������'� -��������� &2�2*�*' �� � ��#����� ��� � ���� ������ �� � 3 *� ��� �� �� �������������� ��� � � ����

-��� � ��#����� ��� � ���� ������ �� � 3 4� ��� ��#� ���� � � ���� ������� ��� � � ��

���� ?��� @ .����� �� ���� ��#����� ���� ������ �� ���� ������ � ���� �D

��

Page 113: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"< ��!��� � �"������� '�!� �!

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

�� ?J� /� $� /�������� �� � �� � &26<�'� *22�@ �� ���� ���� � � *� �� �� ����������� =�!=4 ��I

���� ?.������ ���D@ ��� , � ���� ��� 2 � ��� �� , 2� ��� ���� � 2� �� � ,���� ��� �� � =2�

������ ?$��� ������� ���D@ ��� � � ����� �� � � ,� � � � ���� =����� Q����������� &����� ����� ��'� &2� �� ,' �� � 2� &,� 2� �' �� � � 2� A�� �� � =2�

������ ?-��� ��@ ��� � � �� * ��� , � �� � �� , � �� ��� � � � � 2� � � ,� , � �� ���� ������ ���� , �� ,�������� �� � 3 ��

��� ?.��� �������D@ �� , 2� ��� �� � 2� ���� � ,� �� � �� ��� � � =4�2��

����� ?������� �� �@ ��� 3 � ��2F �� , � ��� ���������� ������� 3 �� 2 ���� , ���,��� ��� �� � �� ��� �� � ,�

���� ?;���� � ��#�����@ ��� �� � ���� ��� ���� � 2�

������ ?A�#���� ���� � � � �����@ ��� � � � G�� 3 � �� 2� ,���� �� � 3� ������������ � ��� ��� � � � G 2� 3 � 3 � 2� ��� ������ ���� � � 3� A�� �� � =2�

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

�� ���� �� ��� �� ���� �� � �� � � � � � �� ���������F ��� ���� ������ ������������ �2� �� �� * ����� ���#��� �� 2��*� �2�*� ��2*� � � � � �*�2� *��2� =�� ���� �� ��� ������� �������� ������ ���� ���

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

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

�� ?1������ �� �@ ��� 3 � 2� �� �� � �� � ������� 3 ���� �� �� � ,��� ������ � �� �

��� ?A�#���� �� � � � �����@ ��� � � 2 ��� 3 � � � 2� ,���� �� � 3� ���� �� � ������ � � � G 2� 3 � 3 � 2� ��� ������ ���� � � 3� A�� �� � =2�

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

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

��������

�����

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

���� ����������������������� ������������ � &2C��'� �<*!�<4�@ -� ��������

*24)6�<C� ��� ���� H ����

����

����

����

���

���

���

����

��I 3 � � C9 G <9 G )9 G 4 � 49 G 29 3 C2)��F ���� ��

��� ������� � ���� ������ ���� ��� �� .H� 4�2!&:'�

�� 5�� ��� �� ����� ����&�� � � � ��' 3��

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

��

���������

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

-� �������� ����&*242)6�<)' ��

��

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

�G � G �

��

�����������

�G � G �

��

�������

�G

�������

�G � G �

�����

�3 *�662�

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

��&;� � ;���' 3 ;� G � � �G ;� 3 �9 <��9� 2 � <� 2 � 2��2C�

��� ��� #������ �����&;��;���'������ 3 ;�G*;�G� � �G&���2';��&;�G� � �G;�'

� � <&*�<' � ���<<�

?-� ������ ������� ��� A� R���� ���� ��������� � &266C'� 2�!C6� ,����� 4�@

Page 114: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� "0

������������ ��� �#����� � ���� � ���������� �������� �� ���� =4 �� ������������&;� � ;���' 3 ;� G ; G � � � � �� 2� 2 3 &<G <�� � �'�� � ��)4*� � ��� �� � �� A� J� Q�������� ?�� � �� � &26��'� 2)�!2))@�

&�' ���� =* �� �������� ��� �9 � 2 ������ � � �� ���� ��� �� �� �#���������� �� �� �� ��� &���� � ��������'� ,��� ��� ���������� ���� ������ ��������� ��� ���� ��

������� 2��9 �� 2 � � � ��� 2��9 �� � 3 �� 8��� ���

���� �� ��

������� 2��9 � <�� � 2�*)6F ������� 2 ��� �� ���� � ���� �� �

� ,�� #������

�� �

������ 2��9 G

��

������� 2��9������ � �

�<� �

<� � ��42C�

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

��� 2���9F ���� ��� � ���� � ��K����� ���%��� �� � � � �� ��

�9 ?2� @ <��&2' � � � <��&2'� ,��� �� " 3�

����������

������ ��� ���������� ;��� ���� �� �����

��� �������� ��� ���� �� ���� =�� ,������� ��� ���� �� ��=)<��&2' � � � <��&2',�2�

����� =)�

��2���9, 3

���� �� ��� ������ ��� ��� ���� �� 4�

��

� � 2� �����

4 3�

���

��������

���

�3�

���

�������

���

�3������

��2 3 ��

�)�G

����G ��

��,�2�

&�' �� ���� � � � � �� 3 ���� ���� � � � � ��� ��� � ��� ���%� �� � � � �� ����� ��� �����������������&������'?�� ��� @ � ��� ���� � ���� � �������� ���� �� ���� =*� ,� �

��� ���� �� ��

�������� =)9��&2',� �����

9��&2' 3

� �����

���� ���

<��&2'

� ������

&�� � �'2�

�9

<����&2'

3 ��

� �����

���

<��&2'

<����&2' � 2

� �����

�������

<��&2'

<����&2'<����&2'�

�� ��� ���#�� �� ��� ���� ��� �� ��� �� � ��=))�<&2'�2<��&2',<����&2', 3

�)������

�� 2,� ��)������

�)�� ��

����,G 2, 3 �

�)��� 2 G ����

�, 3 ���

����� ��

��

�� �� ��� ������ � ��� ���#� � ������� ��� H ������ ��=)<��&2' � � � <��&2',� 2 ��

�� G � � �G ���

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

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

Q�� �� ��� ���� .H� 2���6!&� ' ���� ��� ����� �� �2 G ������� ����� ����� �� 3

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

�� �� ���� &�' ��� &�' �� ��#� �� 3 ?�32@�� ��� ����� �� < � 2 � 2��2C�C� �� ��� &' �� ��#� �� 3 2�&�� � 2'� � ��� ����� ���2 G ������� 2�&�&�

� � 2'' � ��4<��)�

�� �� �� ���� � �� ��������� E��� ��� ����� ���� =2 �

���� ?:�����@ :���� ��� #������� �� � � � �� � �� � �� ��� � � � G 2 ��� ������ ���������

,��� �������� �� � � � =� J� -����� ��� R� �� R�� ��� ������ �� ��������������� ��� �� ��������! &1������I 2C2�'� ))!)��

������������ ��� ���� � ���� � #�������� �� =)<��&2' � � � <��&2', �� ��� ������� ������ <� ,��� ����� ������ ��� %��� ������� �� J��� ;��� ��� �� ��

��"������� &2�2*'� /��� �� ������� 6�

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

��� ?.��� ���D@ �� �� ��� ���������� �� � �� ����� � �� ��� �������� � ������� � ���� � � � ��� �� � ��� ��� ��� �� � :2�

Page 115: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*. ��!��� � �"������� '�!� �!

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

��� ?-��� ��@ ��� � � � � 2� �� �� � ����� ������� � �� 2 ���������� ������ ����� ,�������� �� � 3 ��

��� ?������� �� �@ ��� 3 � �� �� �� � ��� ������� 3 �� 2 ���������� ���� �� ���,��� ���������� �� � ���

� � ?A�#���� ������@ ��� &����� � � � � ��'� &��� � � � � ����' �� �� ���� =4� ��� ��� ��� :2�

,�� � ���� � �� �� �� �9 ?2�@ <��&2' � � � <��&2'F ���� ��� � ���� �� ���� ��� ��������

��� ��������

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

��� ���� &/2� � � � � /�' �� �������� &2� �9� �9� �9 G ��� �9� &�� G *'��� ��' ������ ������� 3

������� �9� ��� �� /� �� �������� &� � 2'9 ����� ���� � � � � ��

��� "� ���� ��� ���� ����� � ���� 666666� ,�� ������� ��� &�' ��C*62)4<�� ��������� *F &�' C�)�4�<*26� ��� �� ��� ��B���� ����������� � ���� ����������

� H ��������

���

���

���

����

����

����

����

��� I �� H

����

����

���

����

���

������

����

����

������

����� I �� ����2�2!&1:'F &' ���

��� � &� 2 � � � 6'�&� 2 � � � C'�&� 2 � � � �'�&� 2 � � � <'� � � � &� 2 �'�� ������ 6��*2)<�4C�

�� ,�� %��� ��������� �� �� � �� ��� � � �� ; � ���� � ����� 2� ������ ������ ������ ��� � � 2� �� ��#� � 3 �� � 3 *� �� 3 � � � 3 �� 3 �� ��� ��� �������� ����� ���� � � ) �� 4*�2)< � � � �� ?��� ���� ��#�� &26CC'� ���� �4�@

��� ,� � �� ��� ��������� � ����� /4� /)� ��� /<� ��� �� ������ ��2���G� ����������� � ��� ���� � �� � ������ � � 2� �� ��� ���� � � � � ���� ��� � ��� ������ � � � � �� �&�� � ������ ���� ��� �� �� ��� ���� ���� � ������� /�'

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

��������

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

����������

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

�� ��� ��� �� �� 3 � � 2 �� � � � � � ��� -����� �� �#��� �� ����2�2!&1:'� ; ����� 3 � � 2 �� � � � � � ������� ���� -��� �� �� �� � � � �� ,�������� 3 ?����3 � @ G ?����3 � G 2@ 3 ?���� �@ G ?���� �@ �� ���� /)� ?��� ����� �� ��� &26<*'� �C�!�C)�@

� � ���� ?��������E��@ ��� �� � � ��� �� � �2 �� 2 � � �F ��� ��� 2 � ���

���� ?:�����@ :���� �� � � � ��� ,��� � � /*�)� �� �� 3 2�

��� ?8 �� ����@ -� � � � � 2� � � �� � � � � 2 &�� ���� ����'� ��� ���� � �� ��� � 2� ��� #���� �� � � � ��� ,��� ��� � � �� 2� � � 2� ��� � � /4��

����� ?8 �� ��@ -� � � 2� �� � � � � �� 2 &�� ���� ����'� ��� �� � ����� ���� � 2���� #���� �� � � � ��� ,��� ��� � � �� 2� � � ��

���� ?A���� � �����D@ ��� ; � �� G �� � �� ; 3 �� � � /<�F �� ; � �� � � /���

���� ?�������@ ���������� ����� � ����� ,��� ��� �� � ; ��� ��� �� � /���

� �� ?������� ��@ ,�������� �� � 3 2F �������� ��� � � �G 2�

���� ?����� ��������@ ��� �� � ��� � � � � � 2� ��� � ��� � /4����� ��������� �� � ��� � � �� 2 � � � �� ���� /) �� �� �� ��� � � � � �� G ��! � � � ; G �� * � ��� �� � *� ��� � �� �� � �� ��� � !� �� � ;� &��� ������� 24�'

; � ���� ��� ��#���� ��H ���� ��� �#������� �� �� �� ���� �������� ��� �������������%������ �#����� ��� K��� #������� � ��� ������� ��� ���� ����� �� � � � �� ����� ��������� �� ���� �� 0� .����� ?���� � &26�*'� )�)!)�<@I

��� ?��������E��@ ��� �� � ��� � �� �� � � � 2� ��� �� � �2 �� 2 � � � �� ����� �� 3 �2�

��

Page 116: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� *

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

���

�� ?-��� ��@ ��� � � �� ,��� �� �� 3 �� ��� �� � � � 2� �� � ���� � � � � 2���� ������ ���� �� �3 �� ,�������� �� � 3 ��

��� ?�������@ ��� �� � �� � 2� � � ���� ��� > 3 � G ��� ,��� ��� � � ��� �� � ���� � �� ��� � �� ��� � >� ��� ��� �� � T��

��� ��� �� � �� ��� �� &�� 2'9�� ��������� � ������� / � �������� ��� ���� ������� � �2� � � � � �� 2 � � ���� 2 ������� �� ?+� R� A�� ���� � &26�*'� *2�!*2*F��� ��� ������� 2*�@

��� -� �������� �� �� �� ��� ���� � ������� /� ���� ��� ��� ���� �� � � � ��������� �� �� ������� ����2�28 ���� ������ � ��� ������ &2� �� � � � � �'� ,����������� ��������� ��� �������� ������� ���� �� �� � ����� � ������� ��K��������,�� K��� � ������ �� ������� / �� �� �� ��� �� �� ��� ������ � ������� 2)� ���� ��#���� ���� ����� �� �� ���������� �� �� ������� 2�� ?��� 0� .������ ����� &26�*'� <6�!<62�@ Q���� ���������� ���� ���� � 8���� �� ��� �� ��������������������

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

�� -� �������� ���� � 3 * �� �� ����� 2�*� 2*�� *2�� *2�� 2*�� 2�*� �2*� � � � ��2*� �2*� � � � � �� ��� ����� ��H ��� �� � �� &�� � � � ����'� ��� ���������� ��H ����� � G 2 �� &U��U�� � � �U�����'� ����� U� �� ��� ��H ��� � �� � 2 ��������� ��2 � � � 2 � 2 � � � ��2 �F ���� � 3 � ����� �� � ���� ��� � 3 � ������� � ����

&������ ���� ������ ������ �� ������ � ��� �� �������� )�2�4!4* ��� 44� ,����� � ��� ������ ���� ������ �� ����� ��� �������� �� ��'

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

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

�����

��� ���� ���� � � C� ?����� ���� �� &26��'�

4C!46�@

��� &�,'� G &��'� 3 &�,�'� �� ��#���� ��� ���� � 3 ��

�� ���� �� �� ��� �� ��� � ���� � �� ���� ���� �� �#��� ������ ?� �� @ �3 ?��� @�&������� ��� ������� ��������� �G &��' G &,,' G &�-' 3 &�,�'�'

��� &�' 6�C* G � G 4�* G 2�<� 3 2�C�)� &�' <6C*6� G *26� 3 ��2)C4� &' <*6)� G<6��) 3 2**���� &�' <)*6�4 G <)*6�4 3 2*��C4C� &�' )�2C G * G 6C�42 3 2�44<�� &�'2��)�*G)��*)2G*64�)*6G4<)�C 3 4<�*6�2� &�' <�4*�G��4GC�4<G6�*<4 3 2�*)4<�&�' )6 G )��4�4�)2<6C G <6*4�462<)� G 46C<644�<6C G 2)�4 G 4�<24 G C�)62 G *44 G42 G �424�) 3 )�2<*<�<)� G <624��<C46�4� ? �� �� ���� ��� ��H �� A�������� ��&�'!&�'I �� $��������� ����� � &26��'� 2))F � &26��'� �6<F � &26��'� 42F � &26�C'���4F �� &26�6'� 2**!2*4F � &26��'� ����@

&�' �� ���� ��� ����� ��� ���2�9 3 �6�*�4� �� ����� ��� �� � ��� ���� ����� �

��� 2� � � � � 6 ���� ����� ���� ���� ������ 5 � & � �� & ������������ ������� ������#���������� ��#�� ���� �� ���� � � ��� � ��� �� �� � �� � �� � � �����'

��� "� ��� ��� �� ���� �� � � � � � ���� =�� > �� ��� ����� ����� �� � � ��� ����� � �F ���� ��� ��� ��������� �������� �� �� ���� � ��������� �� ��� ���� ����

��

Page 117: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*! ��!��� � �"������� '�!� �!

� ,����� <�2� ���� ���� ���� ���� �� ������E�� � � �� ������� ���� �� ��������� ����� �� ��� �� ���&� � �' 3 ����)� � &��',�

� � 4���*6 G <*6*� � �*�6� 2�)�<*� G )*4*�� 2*6� G �*C*������ A������ �� ������� ����#� �� ��� ������� ��������I /**' G $6%() G)%(+$ 3 /()%+F %(+)5 G 6()%+ G 6+()5 3 5%//* G 6*+/'F (6(�) G +* *) G %++*+ 3$* %+G6*+'$F .5�/'G)5%�%G2%(.%G%)5�. 3 �'%(/G(/25(G�%)�.� &,��� ���������� �������� �� 65%+%G $%'7%G 7+($$G 7+*6$ 3 �(+$5 ? � "� J����� J��� �� $�������� �� &26C�'� )2@� ���� � �� �� ���#�� ��� � �� ����� ���� ' ��� * ��#� ������� ������ ���'

��� &�' 22 3 * G * G � G � G 2� �� 3 22 G * G * G *� �� 3 22 G * G * G � G 2��� 3 22G*G*G2G2G2� �� 3 CGCG�G2G2� �� 3 �G�G<� �� 3 �G�G�G�G���� 3 �G�G�G2G2G2G2� �� 3 �G)G)G�G2� �� 3 �G)G�G�G�G2G2� �� 3�G)G�G�G2G2G2G2� �� 3 �G*G*G�G�G2G2G2� �� 3 �G*G*G2G2G2G2G2G2G2��� 3 )G*G*G*G*G*� ?,���� � ����� �� ���� ���� %��� �� ��� �� A� �������� 2666� ,�� ���� � ��� ������������ #�� �� � � ��� *� &�� �� ����'� ���� 4� &�� 64����'� 42 &�� <�'� 4� &�� )�'� )� &�� 26� ����� ��� ���� )� 3 � G � G � � �G �'� ���@

&�' )2 3 �� G 2) G 24 G �� )2 3 2) G 24 G 2� G 6 G *� <2 3 26 G 2< G 22 G 6 G <�<) 3 2� G 2< G 2) G 6 G � G 2� << 3 �� G 26 G 2< G < G )� <6 3 2C G 2� G 2< G 2� G C��� 3 *�G��G2�G �G *� �� 3 ��G 2<G2�G6G �G<� �� 3 ��G 2)G2�G22G�G)�C� 3 )�G��G6G2� 6� 3 )�G2�G22G6G)G�G2� 62 3 4)G26G22G2�G)G2� ?,���� )2� ��� � � � ���#�� R����F ��� ��� �� %�#� ��� ���� � ��#� &-�����������$�� P��I ;����� 26�C'� *<!*�� C4� 22�� ��E��� �������� ���� ��#������ ������������ �� ������� ��� %��������� ������� ����� �� A��� � ������ ��#� ���� � �� ��0� �� ������� �� $��� ����� &2666'� <*�@

(����� ,�� ��� ��� � ������� )5+%% 3 )6* G *&% G -%+* ?A����� =� ;������$��������� ����� ����&��� �� &1������ 26<�'� �4@ �� ���� ������ � ��� � �� ��#������� ,�� ���� � ���� � � ��� �� � ��������� ��� ������� ����� �� �������%����� �� .������� ���� �� ������� �� �� ��������� ����� �������� �� �� ��������� ������� �� ������� ���� ������ &�&%),&�&%&*&�//�*&&�&%),&�&%)+�//�*&&�&%),*&% 3&�&%),&�&%&*&�//�*&&�&%),&�&%)+�//�*&4*+),4�0% G &�&%)%%& G %/%0%& G )%& G4�0%G *&%D

��� 2� G � G 2 3 6 G < G *� 22 G 2� 3 C G � G <� 2� G � G < G ) 3 22 G 2� G 6� � � � �26 G 2� G * 3 24 G 2* G 4 G 2 &*2 �������� �� ���'�

� &�' )<�� 3 *�24C6� C��� 3 <)2�46� � C)4� 3 ��6*2<� &�' 6)C� 3 62��<4� &' 6<��� 3 4��4� &�' )2*�4�<26�4 3 ��<��C�<�� ?����� �� &26�6'� 62� ��CF �� $��� ���� &26��'� 4*F � &26C2'� �2�F �� &266)'� 2*�� ,�� �� ���� � &�'� &'� ��� &�' ��� ��H �� "��� � ������������ ������ ����� � ������� 7� ��� ������� ��� � �� ��&24� 2*� 22� *4�*' �������� �������#����@

�� )�*4G��<CG6�2�&9'� Q�� �� #����� ��H ����� ���� ������� 7 ���� ��� ���������� ( ' 7� �� �� � �<) R?�

�� ,���� ��� ���#�� ����� � ���� ��� ��� � �������� �� * G <6�)C��24� ?��� ���'��!�� ��� ���� &6 ��� �* J �� 26�2'F ���������� �� ����������� &262�'� 2)C!2)6�@

� &�' 2� �� *� 4� 2)� 2C� 22C� 24<� &�' <� 6� 2<� ��� ��� 2�<� 2��� 2�6� 2*<� 24)� ?���'��!�� ��� ���� &22 ��� *� $#������ 26��'F ���������� �� ����� &262�'� 2)6�@

�� ���� ��� �� � ������ �������� �� � %�� ��� #�������� ����� �� � � � ������� � � � ���� �� �������� ���� � ���� �� ���� �� ��� ���� ������ � �� � � � ����� ,���� ���

��

Page 118: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� *"

������ 2<46)6 �������� ���� � ��H � �� ���� ��� ������� ����� 6C�<)**� ,���� ����� ���� �� ��� ����� �� ��� �2�� ��� �� ����� ��62� ,�� ��� �� ���� &2�)' ����� � 3 <44*F ��� ������ ������ � ������������� �>� �� )2�6 � ��<�� 1 �������� ���� � ��� ��� ���� ������� �� ���� �� ����� � �� N������ � ������O

�� &�' � 3 2��� �*�CG2))G6�4<� 3 �2�CG*))G6�4<� 3 2�2<G�**G6C�)2 3 2������&�' � 3 4�� *�*< G 4)) G 2�C6* 3 2<*C4 �� ��H �� ,�� ������� ��� � ����#� ���������� �� ������� � ����� ���� � ���� � ��� �)�6 ������ ���� ����� � %#� ������������� &������ 2��4*� 2��4�� � � � � 6C�*2' ��� � ���� �� ��� %#� ��������� �������

������������ ��� ���������� ��������� %0%& G *'' 3 2+��% ��� ��� �� ����F��� *'' ��� 2+��% ��� ����� �� M �� �� � ����� ?��� +� ������� �� $��� ����� �&26�)'� 2)*�@

�� �� �������� �� �� 3 �#�� �� 2 � � �� ����� ��� �� � � � ���� ���� � ��� ��� ���� ���������� �������� � #�� 8��� ��� ������ ��

������� )

������� �

����� ,� ���� �� ����

��� �� �� � < � �4�� 3 4*<26<<6�4�4��*C*<2�*2*<�&; � �� ��� #������ ��� ��� ������� ��� �� #�� �� ��� ������ -� ��������

�� #������ &�� !� :' � &�' ��� ����������� ���� &�� �� �'� �� ��#� �� 3 2� �� 3 <���� 3 4� ��� 3 2� ��� 4

� � �4�� ���� �������' � ���� ��� � ��� !� :� ;� >� �� �� ���� � ����� ������ � � �#��� ���� ������� ����� ��� ��� �� �� ���� ���� �� ��� ��� #� 3 �&'� �� ��� �� �� ��� ���� �� � ����� � 3&�!�'&#<�9'&"��9'&:;�>' �� � 6�Æ ������ ��� � 3 &�:'&#9'&"<'&!;'&=�'&>�'&�'&��'�� �� ������� � ������ �� #� 3 �&'� &� /� &/ � ����� & 3 &#9'&"='&!�'&;>'&��' �� ������������ ��� / 3 &#"'&9='&:�'&;>'&<�'&��' �� ������ �����F #� 3 � � � 3 #� 3 �&' �&,���� ��� 4� � 2 ���������#� ��������'�� ,�� ��� #� �� �� ���� �� �9��� ���� &��� ������� *)'� ��� ��� ������������������ �� �� �������� � �&�� 2'� � � � � �&�� �' �� �9 � ����� ����� � ��� ������ ��

+� 3����

��� �9� 3 �9&

��'���

��� �&��'� -� �������� +�� � <��)<� 2���� "� ��#�

�������

��

��� � 3

2

� �

�&�� 2' �� � ��G$&�� �� �' 32

<� ���G$&�'

�� . ���>� � ������ ��� ��F �� � ��+� 3�� ���G$&�'�

�� ,�� ���������� ���� '&�' �� ������ �� ���� 04 �� 2��9 � 2�&� G 2'9� �� 2 �� �F ��� ���������� �� 2��9 ���� �� ��>� ��� � ���� 04 �� ���� ���� '&�' ��� ���! ������������� ��� �#����� �� ����

��� )2��9 � 2�&� G 2'9, ���! 3����

��� ) ���! � &� � 2'��!,��9� &�� 2'��!��9 3�� ��� 2��9 G$&2�&�� 2'9'��� &�' �2�*� 2��*� ��2*� ��2*� 2��*� �2�*� *�2�� �*2�� 2*��� *2��� �2*�� 2�*�� �*�2�*��2� ��*2� ��*2� *��2� �*�2� 2�*�� �2*�� *2��� 2*��� �*2�� *�2�F &�' �2�*� 2��*� ��2*���2*� 2��*� �2�*� *2��� 2*��� �*2�� *�2�� 2�*�� �2*�� ��*2� ��*2� *��2� �*�2� �*�2�*��2� *�2�� �*2�� 2*��� *2��� �2*�� 2�*��

�� ;� ��� ��� �� %�� �&2� 2' 3 &� 2'� �&�� �' 3 &� 2 �'�

�&�� �' 3

�&� �'&��2 ��� � � � 2'� �� � � * �� ���

&� ��2 ��� 2 � � � ��* �'� �� � � 4 �� �#��F

��� �&�' 3 &� �' ���� � �� �#��� �&�' 3 &� ��� � � � 2 ��2 �' ���� � � * �� ���,� � ���� � � * �� ��� �&�� 2' 3 &� ��2 �' ��� �&�� �' ����� � �� ��2 �� 2 � �F���� � � 4 �� �#��� �&�� �' 3 &� � ��* � � � 2 ��� ��2'� �� 2 � � � ��

��

Page 119: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

** ��!��� � �"������� '�!� �!

(����� ,�� %��� ����� ���� � ��� ������� 0 � �������� ��� ���� ������ �������� ������������ ��� ��#���� �� +��� "���� ?����� �� � �� &26<2'� 26�!26)@�� � �� ��� ���������� ��� ��������� "� =������ J��� �� ���� � � ������ ��������� ��� � �� � #������ � ��������� ������ ?�� ����� � &26�6'� *)�!*<)@�

��� "� ��� ��� �� ���� � �� ������� 0 ���� �������� ��#�������� �� ��� ��������� �� �� ������ ����� V� � 2> � V� � �� �> �� ���� 0*� ��#���� ���� �� ����%���&�' � �� �&�� �� �� �' � � � �&�� �' ������� � ���� &�'�

�� ��� �� ��� ��� ����� � &��' �� ����� #����� ���� �� ��� ��� ��� �� ������ 4����� � �� ��#���� ���� � �� �G�� ,�� ��� ��� ��� ��� �&�� �' 3 &� ��2 � � � 2 �'��� �&�' 3 &� � � � 2 �' ���� � 3 �� �F �&�� �' 3 &� � � � 2 �'� ���� � 3 �� � G 2�

�� � � � �� �#��� �� �� �� &��' ���� �#�� ��� �� ��#������ �� � � *� ; � ����� � 4 � ��� ����� ����� �� ������� ��� �� � %��� ����������� ���� &� �' ���� ��� �� �� � ��� �� �&� � 2' �� � ������ ���� ����� ���� �&� � 2' � �� �� ���#�� ���� �����F � � �&�' �� �� �� � � �� � G ��

,�� ������� ����� ���� ���� � � � �� �#��I =�� �&�� �' 3 &� ���' �� 2 �� � � 3 � � �� ��� �� &��' ���� � � � � �� ,���� ���� � 3 � � � G 2� �� ��#��&� � 2' 3 &� 2 � � � ��2'� ���� �&�� �' ����� � �� &�� � 2' �� � �� 2 � � � �� ����&�� �' 3 &� ��2 ��* � � � � ��� � � � 2'� �&�' 3 &� � � � 2 �'� �&�G2� �' 3 &�G2 � � � �'� �

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

�� Q� ��� �&2' 3 �&2� 2' 3 �&2� 2' 3 &� 2'� ,�� ������� ���� ��� ������&�' 3 &��� ��2 �' �� ��� � � �I =�� �&�� �' 3 �&�� �'�&��2'�� ����� �&�� 2' 3 &� �'��&�� �' 3 &� � 2'� �&*� 2' 3 �&*� *' 3 &* 2'� �&*� �' 3 &* 2 �'F ���� ����� �&�� �' 3 &� �'��&*� *' 3 &� * 2'� ,��� �� � � 4� ���

� �� * 3 � ��� * 3 2 ��� * 3 �

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

�&�� �' 3 &� ���' � &� ��* ���' � &� ���'F

���� ����� �&�� �' 3 &��* � ���' �� ��H �������� $� ��� �� �&�� �' �� � &� G 2'����� �� � ������������ &��� &6' ��� &��'�'

��� &�' ����C����� ���� !� 3 ��� )��� 2� � � � � ���2 "���� � � � � ���� ,� & � ���� !� ����#�� ��� �� ��� ��������� � � �� �� ��� �� ���� �� �� E���' &�' 4�)*<C62��

� � ,� � &��� ���� ���� !� 3 �'� �� ������ !� � !��� � �� � ���� �� � �� ��#��� � !� � ���� � !����

��� ����� &72�7�� � � � �7<' ��� �������� �������#��� &2� +�-�+�2� -�"�� +' ����������� + 3 "� G � � �G"��� ��� - 3 �"� G &�� 2'"� G � � �G 2"����

��� ����� &7��7*�74�7)�7<' ��� �������� �������#��� +� G &2� �9� �� �� 2' ����������� +� 3

������� �

� 3 �9����

��� 2��9 � �9 &< � 2'� �� ���� ���� ���� �� ��������#��� &2� 2� *� 2� *' ����� �� �������� ��#�#��� �� � 3� � � !� � ��� ���� �� �� �� �6<� C � 2<�4< ���� ��� ���� ������

������� = ��� ������������ &<� �G <��� �<G�<�� � 4' ���� ��� ���� ������� ����� &=��=*�=4'� �� � ���� � *�)<G �<�� � � � C��) &��� ������� )'�

������� 7 �� �� � ��� � �� ���� ��� �� ������������ ��� �� ���� � ������ �� ; � � �� ������� =� �� ���� �� ������� 2�

��

Page 120: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� *:

��� Q���� ��� ������ ��� � ���� ���� � � � � � ����F ��� ������� ������ =� � � � =���� � � � ��� ,� � � � ,�� � ���� ��� ������ ��� ���� � � � � �� ��� =�� � � � � � =�� � -��������� ���� $%&' G �*+% 3 �*&%, �� ��#� &��� � � � � ��' 3 &�6���� 2�����6��� 62��6�� 2�� 2��2� �� �' �� ��� �������#� ������� &�� $� *� %� &� +� '� ,� (� 'F ��� &=�� � � � � =�' 3&�6�����6����6���2� �� �� 2� 2�� 62� 2���' ��� �� � � � �� 3 �22��****44� ,� � � � ,� 366CC��<))4� P�� ������ ����� 9� � � � 9� ��� 9� 3 2 �� ��� ����� ���������� � =�

���� �� E��F �� ���� ��� 9� � � � 9� 3 2��������2� ,���� ������ ���� �� ���� ��� �� ��� ������� ��� �������� #�� �� �

���� G � � �G ����

#�� ��� ���� �� � � � �� � ��� ��������� ������� ���� ��� ����� � ������� �)� ������� ����� 3� ���� � ���� ������ �� ��������� �����

,��� ����� ��H ���� � ������ �������#� �� ����� �� ��� ��� � ��� ���������� � � �� ���� � ���� �� ������� ���� ���� ������ -� �������� �� ��#�� ��� %�������� ���������� � ������� �4 ���� ��� � ��� �� 2*� �� 6� )� *4*� 44� ��� C6�������F ���� �� � � ��������� ����#����� �� ���� &�'� &�'� &�'� ��� &�'� ���� ����� &�' ��� � �����%����� ����� ����� ��� ��� �� ��� V.5�/'> ������� ������� ��� ����� ������������ ����� �64� ������� ������ � )CC �� ��� ������������ ������� =����������� ���� ���#��� ���� ������ � /**' G $6%() G )%(+$ &�*#��� � *<�' ��� 5%//*G 6*+/' &*4� #��� � 42�'�

�� �� � �� �� � ���� ����� �� �� � ��� ��� ��� ����� ��� �� � � � � ��� ���� ��� 3��� ����� � �� ��� ���� � � &��� ����� ��� � ������ � ��� ��� �������'� ��&��' �� �H �#����� � �� 3 ���� � � � �����

��� -����� -� �������� �&�� >'� ��� �&�� �'� ����� ��� ���� � �� ��

��� �&�� �' 3 &��� ���G2' �� �� ��M���� ����������� ���

�&�' 3 &��2 � � � �'&��� � � � �' � � � &� � � � �' 3 '&�� 2''&� � 2'�� � ��B�� ������ �� �� ��B��� ,�� ���� ����� ���������� � ���� ������� � � � ���� �� ������� 8 ��� �� �������� � ��� ����� � � ���� ��� ���� ���� ���� � � � �F � �� �� ��� ���� �� ��� ���� ����� ���������� � �� � � � �� �� ������� /� ����� ���� � ������� ��� ������� �� 2�

,�� ��� ��������� ��K����� ������� ������� / ��� ���� #����� � ������� 8�� ���� ������� / ��� � ��B���� 0��� �� � � � ��� �� ��� ������������ � ������� ������ ����� ������� 8 � �� ��� �� ���� ����������� � ����� �� ��������&����������' �����

������� 0��� �� �� �� ��� ���� ��� ���� ������ �� �������� ������ �������� 0 � ������� 8� ,��� ��� ���������� ��� �� �&�� �' � �� �&�� �'�� ��� ������� ������ �&�' ��� ������#����

�� ,�� ����>� ��� ���� �9�2 ������������ ���� �� ����#�� �� � 3 4 ��� �������� �� �� ��� � ��� ������ ��� � � � � � �� ��� �� � � ������ �����������&��2 ���'� ���� ��� ����� V&* �'> �� ��� ������ � ���� ����

,� � �� �� �������� ��� ���� ������ �� ������ ��� ������� �������������� ���� 84I �� � 3 � � 2 � � 3 � � �� �������� �� ��� � � � ���� ��� �� ������ 3 �����2� �� � 3 ��* � � 3 ��4� �������� ���� � ���� ��� ��� �� ��� ���� �� ���� ��� ����� ����� � 3 ��� � 2� �� �� ������� �� � 3 �� ��� 2 � � 3 �� ��� ���������� ������� � ����� �� 2 � > � � ��� ��� �� ��� ����� � � ���� ��� ����������� � 3 ������� � 2� ?��� ���� �� &26�<'� <C!���@

��

Page 121: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*- ��!��� � �"������� '�!� �!

,�� ���������� ���� ����� ���� ������ �� �� ������� ��� �� ������ ����� �� ���� ��>� ������ ��������� �� ��� �������� ������I

�&�� �'� 3

�&� 2 � � � ��2 �'� �� �� � �� ��F

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

,�� #�� � � �� ��� ����� ���� �� � � �� � 2 ����� ��� ����������� -� ����� ���� ��� �� ��� ��� ���� � � ���� �H ��� � � 2� ,�� ���� � ���� � ����������������� �

��� &�� ��'9� ��� � 2���� P��F ��� ������������ �� �� ��� ����� � ������� �2� � � � � � ���� &�' ���� %�&�' 3 %�&��� �9' ���� � � %�&�'� �� ��#� %�&�9 G �' 3 %�&�'�� � � � � �9 3 &� G 2'9 � �9� ,������� &��� 3 �� ���� � � � �� �����&�� 3�� � � � � �� ��&�� 3 &&�� �� � � � � � �9� ��� �� ��#� �� ����� ���

& ����� 3 ����& ������� 3 ����&����&��� 3 �����

�� &���

�� �

��������� ���� 3 &����&����� �� � � � � � �9����� &�� �� ��� ���� �� ��� ���� �� %�� ��� 3 �������� ���

� ����� 3 ����� ������� 3 ����&���� ���������&�����

3 � � �3 ����&

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

3 &������ �����

�� &&�����'

���

3 &� ������������ �����

�� &&�����'

����

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

�� 3 &�G2 � �'� ��� �� ��#�

& ������ ����� 3 &�G2 � � � � �' �� ��� ���� ,������� ����� 3 &���� �&� � � � �'�

�� � � � � � ��� � � � �9� �� ���� ������ � ��� � � � � � ��� ����#�� ��� ��&���� � %��� � ��� &� � � � �'� ����� � �� �� ��

� � �� �� ��� �� 3 &��2 ���'&��* ��4' � � � �� ��� ���#� � �������� �� %�� �� ��� ���� ���� &����� �� ��� &�G2'���� &� � ��2 ��* � � � &� � 2' &2 � �' � � � ��4 ���'���� �� ��� �� �� ������ )� �� �����

������� ?� ��@��9� &����2'��9 3 ���� 2�2�

$&2�&�� 2'9'���� ,� �� ;� ��� ��� ��� � ������� )) �� ��#� ����� 3 &� �'&���&� � � � �'� ������� ����� � �� � � 2 ��� �� &�� %��� �� &����H ����� ������� . ���� ��%�� �8��������� ������� � ��� ����� � ������� << �� ��� ��� �� &�� 3 &��2 � � � � 2'� ������� ���� �� ��� ��� �� ��� ������ � �#��� ��� � & ����� �� � ��#��� � �� ,�� �������� �� � �� � 3 �� *� 4� <� 2�� ��� ��� 4�� � � �� � ���� � � �)������'

��� ,�� ������ ����� ���� ��������� &��� � � � � ��' �� ��� ����>� ��%����� �� �������� ��� ������ ����� ���� ��������� &��� � � � � � �

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

( � ��( �� ��� ����� �� ��� ��� �� (� � (���� �� ��� �������

� ,���� ��� CC ����� ��H ����� ���� ��� � � � � ������I 7 3 &*�2*2�*2' &������������ ����������� �� C ��K����� ����� ��H ����'F 8 3 &*�2�2�*�' &� � ��� 0���#������ � ����� ������� ���� C ������������#��'F @ 3 &2�2�*�*�2�*�'� &� � ��� 0����� ���� �4 ������������#��'F # 3 ��*��� � 3 2�*�2*2�2�2 &4C ������������#��'�������� 7 ��� 8 ��� ��� ������ � ����� ���������F ������ 7 � 8� ��� # ��� ������� ����� ��#������F ���� @ �� � ������� ��#����� � ��� ��������� ?��� � =� =���� ���#�������� ��&���� �� &26<4'� 2!2<�@

��

Page 122: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� *'

�� ,���� ��� �������#��� &�<� *<� ��� �<� �C� 4�� 4�� ��� �<� �C� �C� �<' � � ����� �������� &2�4*� 2*�4� 24*�� �2*4� �*42� �42*� *24�� *�24� *4�2� 42�*� 4�*2� 4*2�'�

�� ,���� ��� ��� �� ����� ���� � 3 *� ������ �������#��� �� 2*� ��� �2*�; � ���� � � 4 ����� ��� 0��� ����� ������� ��� 2� � � � � � ��� �� ���� ������ ���� � � � ��� .������ <2 ����������� ���� ���� � 3 4� ��� �� �� ��#� �� ����� ��� �� � � 4 �� ������

=�� +&�' �� ��� ��� � ��� ���� ������ ���� ����� ���� �� ��� ��� +&�� �' ������ ���� ����� ���� ��� �� &��� ��� � � � � ��' ��� ��� �� ���� ������ � � ������ � +&�� � ����'� ���� &2 �'�� �� �� �#�� ���� ����� �� +&����� ��'� ����H ������ ������ � � � �� �� � ���� ����� � �2� �� � � � � � � ����� �� �� ����� �� 8��������� ���� ���� ���

&2 �'������ � ��������� &2 �'������ � ���������� � ���� &2 �'�������� � ������F

��� � ����� ��� &2 �'���� � �� ��� ��� ��� �������� � +&��'�,��� ���� ��� ��#�� ��� ������ �� �� ����� &���'9������ ������� ���� ����

�� �3 2� ��� �� �� �� ���� �� 3 �2 � � � � ��� �� 3 ���� � � � ��F ����� ��� &���'9 ����� ��� �� � � � ����� ��� &�� �'9�� ���� � ��� ��� � ��� � � � � �����

-������� �� �� 3 2� ���� ��� ���� 2� � � � ���� � � � ��� ���� � � � �� ���� � �� ��� ����� � +&2'� ��� ��� ��� ���� ������ ���� � � +&2� �' ��� �� � +&2� ��' �� ���� �3 ��� A����� ���� ���� ��

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

���� � ���� ��� ���� ��� 8��������� ���� ��#� � � �� ���� �� 3 �� �� 3&2 �'��� �� 3 2� �� 3 �� �� 3 ��� ��� ���� 3 2� &�� ���� ��� ��� ���� ������ ���� � � � �� ����� ��� �� �#���'

� +��� ���� ��������� ���� ��� �����H �� � ����� ����* � ����� ���� ��� ����� ���� � �H �#����� ������ ���� �� � ���� 2�� � 2���F ��� � ���� ������ ��������� 4C� 0��� ����

�� .����� ����)���� ����� ��H ���� ��#� ��� � ��� 0��� �������F ���� ����� �4��< �H �#����� ������ ���� ��� ������ ��#������ ���L� ������������� $���������� � � �� ��� �� ����� �����

� 3 2�*4*�*4*�2�*�2�2�*�*�2�*�2�2�*4*4*�2�2�*4*�2�*4*�2�2�*�*�2�

��� ������ � ����� ��#�����F 4C ������ ��� ����� � �������� <������� Q�� � ������ ����������� � ��� ������ ���� �� �� �����

� 3 &�&4&4&4&4� & 3 *�2�2�*�2�*�

�� � � � ���� ������ �� ��� ��#��" � �9I =�� ���"�� ���� ����� �� � 3 �� � � � ������ ��� � 3 ��� �� ��� W� �� ��� ��� � ��� ���� ������ & 3 �� � � � �� �� ���� �� 3 ���� & � �� ;� ��� ��� � " ����� �� � 0��� ���� 7� �� W� � "� �� ���� ���� �0��� ����� 7� �� W� � W� � � � � � W��� �� � � � � �� � ����#��� ������� 7���

���� � 0��� �� �� W���� &��� ��� N��������O ���� ��� � ������ <�� �� ����7� ���� �� � 0��� ���� ���� " �� � � ������ � <�'

� 1�%���� ��� ����� ��H ��� �� ��� � �� ( ���� ��� �� 3 &2 �'(�� �� %�� ������ *<� � ��H ����� ��� � ���� ��� ��� ������ � � ������� ���� &�,2,2,�2,2,2'�� &,������ ���� � 3 )� ������� ��� �� � 2��� �� ���� ���� ��� ���H �#����� ���� ������� ��� ��������� ��#������ ��� ���� ����� � ��������� �� � �� � <�2��� ��K�����

��

Page 123: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*< ��!��� � �"������� '�!� �!

����� ��H �����' ������������ ��� /�� ��� ���� ���� ��� ������ ����� ��������� ������ ������������ �� �� &�� �'����������� �� � �� �������� �� �� �� ��� ( �� �H �#����� � (&2�*4)'� �� ��� � ��� �� ����� � �4 #������ ������� 4��<C 8��������� �� ���� �4� � ���� ���� � ����� ��H ���� � ��� ��� �� ������ � ��� ��� ����������� < ����� &�� �������� � 3 *)4�*�)*4�*4)*�4)4*)�4)�'�,�� ���� � ���� � �� ���� � ���� ������ �� ������� �� � 2����

�� �� + ���>� ������� ������� �� )� �� + �� ������� �� �� ��� �� ���� �� �� � ��������� +��#��� �� ���� ��� �� �� ��#� � ��������E���� � ��� ��� �� �� ������� <�I-� � � 4 ����� �� � 8��������� ���� �� ) ��� ��� �������� ���� ����� � ��� ������ ������ -� �� �� ��� �� ���� � ��� � ���������� ���� + ������ ��� ����2���� ����� 2 �� � ���� � ��� ����� ��� � ��� ���� ���� � ������� <� ��������

?,��� ������� ���� ��� �� � � � +� ,� ����� �� ��������� �� &26C�'�22)!2��� .������#� ��������E����� ��#� ���� ��� ���� �� A ���� ��� ��#��� �� ������ ������� ����� &266*'� 2)�!2<<� ��� ��� ��� ������� A ����� � ������� ��(�������!� ��� * &26�)'� 2�!�)F .������ ����������� ���������� �� &26�)'� *<�!*<<�@

�� -������ ��� ����� ��� ���%�� �������� ����#�� ���� ���� ���� � 3 )I

���� �

�� �

�� �� �

���

� ��� �

� �� ��

� �

���� ��

�� �

�� �

�� �� ���

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

# ��� � �#� � �#� # ��� � #�� � ��# � ��# � #�� # ��� � �#� � �#� # ���

��� # �#� � �#� � ��� # ��# � #�� � #�� � ��# � ��� # �#� � �#� � ��� #

�#� � �� �# �� �# �# ����� #� #� �� #� �� �� #���# �� �� �# �� �# �# ��

�� #� #� �� #� �� �� #���# �� �� �# �� �# �# ����� #� #� �� #� �� �� #�

��# � #�� � #�� � ��# � ��� # �#� � �#� � ��� # ��# � #�� � #�� � ��# �

� #�� � ��# � ��# � #�� # ��� � �#� � �#� # ��� � #�� � ��# � ��# � #��

���# ��#�� �#�� ����# #��� ��#� ���#� #��� ���# ��#�� �#�� ����#

#���� ��#� ��#�� #��� ���# �#��� �#�� ���# #���� ��#� ��#�� #���

���# �#��� �#�� ���# #���� ��#� ��#�� #��� ���# �#��� �#�� ���#

#��� ��#� ���#� #��� ���# ��#�� �#�� ����# #��� ��#� ���#� #���

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

8��� ��� � ��� ��������� ���� � ���� ������ ���� ��� ������� ������ ���L���B���� �� ��� �� ����F �������� ��� � �� ������ ������ �� N����� ���� ������O &������� 2C'� "� �� �� ������� / � � � ��� �� ��� ����� ���� �������������������� ������ ���� ��� ���� �, ���� � ����� ,� �� ��� � ��� �� �������� � � ������� � %� ���� �#� � � ��� ����� � � ��� ����� ���� (� ���� ������������� �� � ��� ������� � ���� ��� ���� ������ �� � � � ���� � ������ �������#������ ��������� &"� ��������� �� ��� ��� ���� �?�@ 3 �?�9 � �@ �� ��� �� � � ������� ,�'

$� �� �� ������ 2 � � � � �� �4 � � � *2 ��� ����� +� � � � +� � +�+�+�+��� � � � ��� ��� ��� ����%�� �������� ���� ��� ��� ��� ���� �� -��� ��&�'�

,��� ����� ��� �������� �� � &������ ��#�' ������ � .� �� A��������� �� ����� �� &26)6'� )2!)C� �� ��� ������� � ��� ������� ��� ����#�� �� �������#��� �� 26C6� ������ ���� ��� ������ ����� �� ��� �� � ��������� �� �������#� ���� %� �� � ��� � 8��������� �� �� ���� %� 3 �% ?��� �� /�� ��� A� A���X�Y�N8��������� ����������O � �������@

�� $F ��� ������ ��� �� ���� ������� ��� ������ *)C� ; � ����� � ����� ����� ����M��� 2C������ ��� ���� � 8��������� ���� � ������ ��� �� �� ����#��� -�

Page 124: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� *0

�������� ������ ��� ���� ��&� ��� /�� �����

� 3 �������������������������������������������������������������F

& 3 ����������������������������������������������������������������F

/ 3 �������������������������������������������������������������

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

�� �� ����� ���� 2*4)�< ��� ���� ��&� �� ���� 2<*4)�F ���� ���� /�� ��� ����2�<*4)F ���� ���� �/� ��� ���� 2)�<*4F ���� ���� &��� ������ �� 42)�<*�

��� �� 8��������� ���� ��� ��� &��2'9 #������ ���� ���� , �� �� ��� � ���� &���� ��� ����' �� ������ �� � #����� ���� ����� � �� �� � �� � �� �� ����F ��������&�� 2'9 G 2 #������ � �� ���� � �� ��

��� &�' �� �� %��� ���� & �� ��� �������� ���� ����� &'� ,��� �#��� ��� � � ���������� �� ������� � + ���� �������� ������ +� 8��� ��� ���� � � ��� ������� ��������� ��� ���� � � ���� ����� � ������� � +� �� ��������� ���� ��#� ��������� � � �� �� �#�� ���� ������

�� & �� �� ��� ��������� �� ����� ���� ��� ���� � �� 3 �&�� &� 3 &'� ��� �� 3 �&���� ���� ���� �� �� �� �#�� ���� �����F �� � � ��� & ��#� ��� ���� �����

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

&�' =�� �� ��� #������ � ��� ������ ����� �� ,����� A� ��� ��� � �� ������� ����� � ���� ����� � #����� ( ��� �(F ���� ���� ����� ��� .�� ���� ������� �� 1�%�� ��� ���� ����� & ���������� ,��� �&� ��� .�� ���� � ������ �� ��� �� ��� ��� 8��������� �� �� �� ��� ����� ��%��� � ��� � ���� ������ ��� ���#������ ��� �����%�� ��� ��������� � &�'� ,������� � ��� & ��#� �� �� � ���� ������ ��� �� ��� ���� � � ���� ����� � � �������� ���� � ���� �� &�2'��� &���������� )����!�'�

?,��� ���� ���� ���� ���� ���� �� ��� ��� � ��� �� � ���� � �������� ��������� �� A����� �� )�� �������� )���� ��� � &26<<'� 2)!2<�@

�� ,�� ������������� &�/� �� ��H � �� �� ��H ��� � � � .�� ��� � � � �� -��� �� ��� &� 3 /� �� ��� � ���� � � .��� ��� �� � � �� ��#� �� ��� ����������� �� ����� ���� &� � 3 /� �� ��� ��

=�� � �� � 8��������� �� ��� �� �� ��� ���#� � ������� �� �� 3 �� ���� �/�� �� �� �/�� ��� �� �/& 3 �� �� �� �� 3 �& ���� �/� ���� �� �/�� ��� ������ � �� ����� �/�� 3 �/��� ,� � ��� �������� �/� ��� ��#� �H �#����� ����#������ ������ � ����� � ����� �� ��

$��� ���� �� � � � ����� �� � � � � � � ���� ��� 3 ���&��� 3 �&�/�� ,���������� � 3 �/��� �� �H �#����� � �� ��� ��� ���� ����#�� ���� ������� "� ��� �� � ��� ��� %��� ���� �� . ����� �� ��� ��� �� �G � �� ������#��� ����� � ��

��� ���� ��� ���#� � ������� ���� . 3 ��� � 3 �� � 3 �� � 3 ����� ,�� � ���� ������%�� � � � &�� � �'� � G � � � &�� � �'F ��� �� ����� ���� � G � � � �� ������ �� &�� �'��� � �����

(����� ,�� �� ��� 0��� ���� � ������� ����2�2!�C �� � 8��������� ���� ���&�� �' � )��2� &��' �� �,� � �� �� � 8��������� �� �� �� ��� ��� ��� �� � � ������� �� �� �� ��� ��� � �M�� �� &�������' ���� �� ����� �� 8��������� �� �� �����������#�� � � 2� ; � /� .��Z� ��� "� ,� ,����� ��#� ����#�� ?�� �� � ���� �

&26�C'� 2*�!24�@ ���� �� � ��� ��G2 ��� �� ����� � ������ � � ������ � ������ ����� 3 �&��G 2'&*�G 2' ��� � 3 &*�G 2'

����� ;

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

Page 125: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:. ��!��� � �"������� '�!� �!

��� J� � 0������� ������������ ������������ �� * &� ���� 2662'� 4�!4*� ������������� ���� �� � ���� ����� � ���� �� 0 � 0��

��� "� ��� ��� �� ���� ��� � � ������ �� ��� ���� ���� ����� ,���� ��� � �� �������� � ��� � ��� ��� ��#������ �� *� ��� �� �L* � ��� ���� ��� ��������� �� �������� Q��������� ������� � 3 ��&���' ��� ��� ��� �� �� ��� ���#� � ������� � � ����&�� ,'� 3 &&�G�' ���� &,G2' �� �' ��� &�� ,'& 3 &&�G2' ���� &,G�' �� �'��� %�� ��� ������

�������

��

�H��)&����'�� &�G�'�, 3 � � )�� � * ��� ��)&����'�� &�G�'�, 3 *�,I�

� � �� ? 2���������� ��������� @A� � 5���

�� & �$ #� ,�� #�� � � � &* � ���� �� �����'� � �$ 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�� 3 �2� � �#������ ��������� � 7+%7 � ������� � ��� ����� �� ����� ���� G 7+%7 � ������� � ��� ����� �� ����� ���) � 7+%7 � ������� � ��� ����� �� ����� ��

�� /*. H#��

�� #5 $).* �I�I� - �+ �� � ���� �&./ �I= - �+ � � � G 2�� �5 /'* CI�I� - � � ����� .�2 �ICI� -�� - �I# - =� �� �� 3 ���� & CI'��� + ,�������� �� �� � &� 3 �'�� /'* ��I�I� +� 2 -��� ����� ('' �ICI= +� 2�) $)* �I�I� +� 2 �� � � G 2�� (&' �I�IH= +� 2� .$- CI�I� +� 2 ��� � � � �� � �� �#���� /'* �CI�IC +� 2 -��� �� � $)* ��I�IC +� 2 A����� �� �� ���� .$- �ICI�� +� 2 ��� ! � �� �� � 3 ��� $1 CICI= +� 2 � � � � 2�� .$- GICI�� +� 2 ��� * � �� �� � 3 �� $1 CICI= +� 2 � � � � 2�� .$- �ICI�� +� 2 ��� = � �� �� � 3 ��) $)* �CI�I� +� 2 A����� �� �� ���� ��� �� �

��

Page 126: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� :

�� ����� 21$5J �I0��� +

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

�� 21$5J �I0��� +

�� $%) �I� + ���� ! � =�

� $%) �I� +

�� $%) �I� +�) $%) �I=?! + � � *�

�� J�2 � +

�� ���� /'* �I(� 2

�� /'* GI(# 2

� /'* �I(" 2

�� J�2 ����� 2

��� =���� *2!*C ���� �� � 2 ����� ����� ����� <2!<* ���� �� ��� ����� )<!)C���� * G &�� �'?� �#��@ ����� ���� &��� �&�� 2' �� ������ 4�'� ,�� ���� � ��������� �� �������� )&��9G�'+G�-G��),?G)&��9G��G�G&���'?� �#��@'+G�-���4,A������ + 3 �9��9 ��� - 3 �9&2��9 G � � �G 2��9'���� $/1 �IKHLI�M $/1 �I�I9M �*+ �I�I�M (&' �I�I�M $+1 �I�I9M *+ �I�I�M

�*+ �I�I�F ����� �� �� ��� ������ � ������� 2�*�2�!*4� ��� ������ VKHL> ������ ��������� ���� ������ ��� ������ #�� � ��

��� $/1 �I�I�M ��*+ �IKH==99""##==99""##LI�M (&' �I�IKH������LM $+1 �I�I�M

�*+ �I�I�� ,��� ������ ���� �� ��������� �#"!9:;<= � �#!"9:;<= ���� � 3 4� � �&�1' ����� �����

.#�� ������ ��� ������� � �� �� � � ���� ����� � � &��'I �������

21$5J �I0���M ��*+ �I�I�#M 21$5J �I0���M � � � ��*+ �I�I�:M 21$5J �I0���

����� �#� � � � � �: ��� ������� ���� � �� � �� �#"!9:;<= � ���� � ����#����#"<=!9:;� �#":;<=!9� �#":;!9<=� �#"<=:;!9� �#"!9<=:;� Q���� ����� ����� ���� ��� ��� 2L< � 2L�4 �� ����� �� ���� ��� � �� S��� ������� ������ ��� ������������� :��� ��#��� � � �� ����>� ���� &��' �� #��� � ��� 21$5JL2*2 #�������

�� � �$ B":: M� �$ B� M�� �$ B# M� �$ B" M� �$ B!

$%) �I# � � 2�!5 $+1 �I�I;� � � ������� �������

$/1 �I�I9 � � 2<��� 2<���.�2 �I�I�

$/1 ��I�I"

$/1 �I�I��

*+ �I�I� � � �G 2<���2 &- �I# A�� �� � ���� �� �� � �3 ���&./ �I# � � � G 2�2 &- �I! A�� �� � ���� �� �� � ��

��� ?G ))�9G22+� &��2'9G<,A 3 )&)G2���'AG$&���',�9� �� � ��� #������� ���������� + 3

������� �9 �� ��� � ���� � ����� ��� �� �� !5 �� ����

��� "��� � ������ ��������E���� ��� � 2*������� ������ ��� �� � � �E�� ����

����� ���� ��� ������I

��

Page 127: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:! ��!��� � �"������� '�!� �!

����� 7+%7 H==99""##==99""##

�5 � 0��� ������� � �2 & �I$����

)�� ��*+ �I�����I�M (&'&/ �IHM 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�

�� �� ���� ���� ��� ������� ��� ��#� ����������� ��� ���� ������ �� �� ��� ������ ������ �������� ��� ���� ������ � ���� � �� &� � 2'�9�� � � ��9��� ������� ����� ����� � ���� ������ �� � � � ��� ,�� �������� ��� ������ ���� ��������� ������ �� ��� �� �#������ ����� ����� � ����������� �������

��� "� �� �� � �����H � ���� ���� � ������� *�4��/I , �� �� � 3 �&�'� %������ ���� � � �� 2 � � � � &��� ��#���� ���� �����'� ,��� ��� � � �� ��� �� � 3 ��� � 2� � � � � � &�� ���� ����' ��� � � ��� � � � �� G � � 2� �� � �� � �

��� � �� ,

�� �� �����&�'� ����� ���� �� � 2� ,��� �� � 3 �� � � � � � � 2� � &�� ���� ����' ���� � &��� �'G2� �� � ��� �� � �� � � ���� ?��� �� /���EE�Y����� ���� )�� ����� &26�)'� 2C�!2C*F "� +��#�� ��� -� A ����� ���� )�� ����� �� &���2'� �C2!�C4�@

��� �� � � , ��� , � 2� ��� �������� ���� ��#�� �#� , � ��� ���� � �� �� 2 � ������� � ,� � �� ���� ��#�� ���� � #��� � 2�

� � ,��� ������ �� ���������� ����F ������� / ��� � ��B���� 0��� �����

��� 0������� ��#���� ���� ������ ���� ��� ��� ���� �� �� ���� �

�� ���� �

�� ����

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

��� &�' =�� �� 3 ����� � � � � � � ��� � �� �����#��� � ����� � �� �������������#���� ,��� ����� �� ������ ����� ���� ��� �� � �� ���#��� �� ��� ��� �� �� � ������ �2� � � � � � � 2 � ��� � � �� �� ���� :� ��� � � ���� �� ���� :)�

&�' $� 4 3��

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

&' ,���� ��� �� ����� �� ������� ���� �� � � � �� � ��� ��� ��� � � � � � � ��� ������� ���� �� �� ����� ����� ��� ������� ��� �� � � � ���� � �2� � � � � � � 2 �

&�' ������� ����*, ���������� �� �� ������� �������� &�������� ���� �����������'� ���#��� ���� ��� ��� ������� ������ "� �� �� �� ��#����� �������������#��� ��� ��#��� ��� ������� ������ � ��*���� �������� &�������� ���� � � ������'� �� ��� �� ������� ������� ������� �� �� ���#���� �� � ��� � ��� ��� �������� ������� ��� �� � ����� ��� ������� � ���� � � � � � � �� ��� �� ����� ,) ��� ,����� ������� �������� �� � H � � &�� � ����'� ,� � �� � �� �����#��� ��� �� �%���� ��� ���� �����#��� ������� ���� �� �� �� � ����� �F ��� � �� �������� � ��

&�' =�� ��� �����#��� �>� �� �� �� � � � �� 3 " � ,��� �� ��#� �� � �������� &'� ����H �����4 3 ��G� � �G�� � ��&2G

��G �

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

��G �

G� � � ' 4���

& ������� �������� �� ������� �������� � � ������� C6 ���� ���� 4 �� �� ���������� ��<" �'

��� ,�� � ���� " � � � ���� ������ �� ���� �� ������� )���2!�)� ,�������4 3 ����G � � �G�� 3 ����2 � '�" � $��� ����������� ���� ��� � � ���� ������������� �� � � � �� 3 ��� � � � �

��� ,��� �� �� �������� �� � 0��� ���� &������� ����2�2!C6'�

�� ���� �� 3 &� � 2'&� � *' � � � &� � 2'� �� %�� 4 3 )2 G ��#(�G$&2��'," �

(���� ,�� ��#����� ������ �� � � � �� �� ���� ������ ���������� &�6' ��� ���������E�� �� ��� ������� �� 3 �� � � ��� � ������ � � ����� � ����� G 2�

��

Page 128: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� :"

��� ,�� ���� � ���� � ����� &@�#'� ����� @ �� � ������� ������� ��� # �� � ������������� ���� ��� ��� @� �� �H �� � 7� ����� ��� ������� � ���� � ������� ����F�� �� ��� 8� ����� �9� � ��� ������ �� �98��7��

"� ���� ��� �� ��� �� ����� � 7� ��� 8� �� ����� ����*� -� 2 � � � 2���� ��������� � ��� � � �� ������������

&2� 2�**� ���2� 4�*C� 2��2� �<��� �6�*� �<�� 6)�� *�<�� 2<���� �4C��'�

������� #�� �� �� � � � ��#� ���� ��� �� �� ;���������� /�[���� ��� ������?�� ���������� ���� �� &266<'� 26*!��<@� � � ��� �������� ����#�� �� H �����K����� ��� ���� ������� ���� � �� �� � ������� ������ ,�� #�� �� � 8� ���� %������������� �� � � ) �� �� /� #��� ?��*������� ����� � &26��'� 6)!2��@�

��� ,�� ���� ���� �� � ����� � � ��� �������� � G 2 ��� � G � ���� � � � G 2��� � � � G � �� 2 � � � �� ��� � %�� ��� ������� ���� � � � �� ��������������� #�� ��M���� �����������F ���� ���� �#��� ������ ���� ������ � ������������ � ��� ��������� � �������� ������� � ������� : �� �� ���� � � ���� ��� ���� ���� ��� �� � � � � � �� ��������� � � 2 ��� � ���� �� � � � ���� �� ���������� ����� ��� ���� ���� �� 2 �� �� �������� �������� �G 2 ���� �G �� ?���0� /� ���� ��� -� A ����� ���+�) � &2664'� *�*!*C<� ������ ���������������� ���� �������� �� ���%��� ��� "��������� +�� �� &266)'� )�!�)�@

�� ,�� ��� � 3 * ��� ������� ��� ������� ���� � � ������� ���� ������ ���� 2 � � � &��'��� ���� ���� 2&��'�&���2' � � � �&�G2'I 2�*4)<� 2�*)4<� 2�*<4)� 2*�<4)� 2*�)4<�2*�4)<� 24�*)<� 24�)*<� 24�<*)� 2)�<*4� 2)�4*<� 2)�*4<� 2<�*4)� 2<�4*)� 2<�)*4�

+������� �� ��� �� �������� �� ��#� ���� � �2� � � � � �� ���� ��#� � �����"��� ���� ������������� ���� ������� ��#�#�� �� ������������ ��� �����

$��� ���� ��� 0 ��#����� ������ � ��� ���� ������ M �� ������ ��� �������#���������� ���2��� ������� �2����� �2�2��� �2����� ������� ���2��� ������� �*������*�2��� �*����� �4����� �4�2��� �4����� �� �������� 0� 3 0 3 � � � 3 0���� 3 ���� ��� ��� ���� &0�� 0� � � � � 0��' � � ��� �� � ��B���� 0��� �� � ��� ������&�� � 2� �� � *� � � � � 2'� ,� � ��� ��������� ����� �� ������ �� ���� ������ ���������� ?��� ,����� "����� �� ���������� ����� ��� ���������� �� ����� &���2'� 6)!22C� ����� 2�@

��� 0������� ��#���� ���� ������ ���� ��� ��� � ��� ����� � � � � � ���� �������� :� &��� ������� )�2�4!�* �� ��� � ���� � �� �����'

��� -� �������� �� �� ����� ���� �� � � � ������ 3 � � � � �2 ��� ���� � � � ������ 32� � � � �2� ��� �� ������� / � �������� ��� &� � 2'9 ���� ������ �� � � � �� ���� � � � � � � J �� ����� ���� �������� ����� �� � ����� �� ��� ����� � ��� ��� � ���������� � ����� ��� #���� �� � � � ���

� � 5�� ������� 7� ���� ��&��� � � � � ��' 3 V�� �3 �>�

��� 5���� ��� ������ � ������� 4�� �� ��#� "� 3���

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

����� � ��� ��� ��� ��� ��� &������� 2�*�*!�<'� �� � 3 $&���' ���� "��� 3&�9<����9'&2 G $&�� �'���'F ���� +��9 � &< � 2'�< ��� -��9 � 2� ,�� � ���� ������ ���������� ���� ��� ��� ������ � ������ 4C� �� �������� � +G - G *+G- �"� G *+ � �9 &6� �

�' � <��<�9� �� � 2<�) ��� ������������ ?��� �� 0� ��� ���

� &26C�'� �!�� �� � ������� ������@

��� � ���� B� ��������� C��C���� ��������� ���� &2 � � � � �'� ���� &� 2 � � � �'� ��������� ���� &2 � � � ��2'F �� �������� B 3 &2 � *'� &� 2 *'� &2 �'� ,��� �� �� ��������

��

Page 129: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:* ��!��� � �"������� '�!� �!

C��� �� D��� � � � � D��� D��� ����� D�� 3 &2 � � � � �'��&� �G2'B� &2 � � � � �'�F ���������� C ��

&2 � * 4'� &� 2 * 4'� &2 �'&* 4'� &* 2 � 4'� &2 * � 4'� &* 2'&� 4'� &� * 2 4'� &* � 2 4'� &� *'&2 4'�

$��� ���� D�� ������ ���� ��� ��� &�G2 � � � � 2 � � � � �G2' ��� ���� ����&�G2 � � � � 2 � � � ��2'&� �G2'F � ���� ���������� �� &��2 �' ����� � ��� D��

� D� ����� ��� ���� ���������� �� &2 �' ���� ��� �� ��� ��� ���� ������� � C���

� ��� %���� /��� ���������� �� &2 � �G2' ����� � ��� ��� ���� ������� � C��� �&� 2 * � � � �'� ��� ���� �� �� ��� �� � &2 � � � � �' �� ������� ��� ��� �� C�

��������� ������� �������� ��� ���� B��� �� ��������

��� 5�� ������� 7� ���� ��&��� � � � � ��' 3 V� � � � 3?;@ �3 � G 2>�

(����� ,�� � ���� � ����������� ���� ������ �� ?2�@ )2�2������ �92

�,F ���=� ������ �� ��� $����� ����� ���� )��� ���� &26��'� )<6!)��� �� ������� ���������� ��� ����������� ���� ������ �� �� ��������� �� ��M���� ������������F ���������� ���� � 3 4 ���� ��� *24�� *42�� *4�2� *�42� �*42� �4*2� 4�*2� 4*�2� 4*2��42*�� 42�*� 4�2*� �42*�

�� 8��� �� � ���������� ��#� ��� �������� ����� � � ������� 7�

��� ?��������E��@ ��� �� � � ��� 3��� � � �� 2 � � � �� ,��� ��� 3� � �� � � 2�

��� ?.���� ��#�� ��@ �� � � �� #���� �� � � � �� ��� � � P*� Q�������� ��� � � 3��!� � �� 3� � 3�� � � � G 2� ��� ������ ���� ����� &"� ��#� ������ � ����� 3 ��'

�� ?1������ ��@ ��� � � �� 2� ��� ��������� �� � 3 �� Q�������� ��� ; � !� ���� � ��� �� � 3 ;� ��� 3� � ;� ; � �� � � 3�� ��� � � � G 2 &��������� � ������ � �'� Q�������� ��� 3���� � ;� � � 3� &��������� � ���� �� � ;'�

��� ?������� ���@ �� � 3 � � � P)� Q�������� ��� 3� � 3�� !��� � ;� !� � ���� � �� �� � ;� �� � �� � � � G 2� ��� � � P��

��� ?A����� ���@ ��� 3� � �� �� � �� �� � ;� � � � � 2� ��� ��� �� � P*�=�� ���� 3 �� G ������ ���� 3 2 G �� G ������ �� 3 �� 3 2� �� 3 �� �� 3 2� &���.H� )�2�4!&�:'�' ���� P� �� �������� �� ����� ���� � � � ��� �� ����� ���� � � ������ P* �� �������� �� ����� ���� � 3 ; ��� �� G �� ����� ���������� ���� P4 ���������� ���2 �����F ���� P)� �� ������ ,�� ���� � ���� � ���� �� ��� �� �� ���� �������� ������������ 22�� G 2���� ����� �� 2��)**2424��� &Q�����E����� ��������� ������� �� ����� �� ����������'

��� "� ���� � � ���� B� ���� ������ ���� &' ��� ���� ���� &��2 �'� �������� ����B 3 &'� &2 �'� &2 *'� &� *'� �� � �� ��� B��� �� B�� D

���� D��� � � � � D

���� �����

D�� 3 &� � � � �'�B���&� � � � �'&� �G2'� -� ��������

B 3 &'� &2 �'� &2 *'� &� *'� &� *'&2 4'� &2 4'� &� 4'� &2 *'&� 4'� &2 �'&* 4'� &* 4'�

�� � �� �#��� B��� �� B�� D� ����� D�� ����� � � � � D��� &2 ���'B�

���&2 ���'&� �G2'�

-� � ����� ��#��������� ��� ��� ������ �� "���� ���� �� ������ 6*�

��� ,�� ������� ������� �� ��� �� ����� ��#��� ����� ��� � � � ��K����� ��������� %� � �� 2 � �� ����� %� ������� ���������� �� ���������� ���� � ���#��� ���������� ���� � �� ��� "� ��� ��� �� ���� � � 4F ��� + 3 &%%�%�%'

��� ������� +� ���� ����� ��� ��� ���� %���� ��� �� ���� ����� �� � � ������� %��� ���������� , ��� +���� ������ ��� ��� %��� � +� �� %�+

��%�� �����

� 3 2� �� 4� � � � � �� � � �� � �� �#�� ��� � 3 2� *� � � � � �� � *� �� � � �� � ��

��

Page 130: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� ::

��� ��� ����� +�� �� +� ���� ��� %��� � ���� ������� �������� ,���� �� �� ��������� �� � � � �� 3 2 � � � �� ��� �������� %��� � +� ���� � �� ������ �� � � ���� �� ��� � ����#� #�� �� � � �� � � � �� � � � � � ���� � �� ������� � � � ���� 3 &��2 � ?� �#��@' � � � 4�2* � � � &��2 � ?� ��@'F ��� %��� ���� ����� ��������� �� 2 � � � ��

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

��� ��� 3 �&�G 2'��4� �� ��������

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

&' ������ ���� ��� � ��� ���� � �� �� � ������ �� �� ����� � �������������� ����������� �������� � ������� 2<� ��� �� ��� H ������

���� ������

�� � ������ ��� ���� ��� ��M���� ����������� ��� ��� �� � � 2 � �#��� � �������� N� ���O ���� �� �� ��� �������� "� �� ��#� ���� ��� ��� �� ��������� ������� ������ �� ���� 2 ������� �� ,�� #�� �� �� 2 � � � 2) ��� �� �� �� �� <� �� 2C4�6*<� <<CC� �� 4��4C�� 4�6C<<4� 444�)24�� �� <�*�<�24�<�

��� &�' -� ��� ���� ����� �� � � � ��� ������ � ������� �� ��� ���� �� �� � ����F������ ������ � � � ������� ���� �� �� ����� & ���� ����� ���� � N������O�������� ������ �� ���� ������ "��� ����� ��� �������� ����� N������������ �������������F ������� )�*�2!4 ���� ���� ����� ��� ������������ �9�&�&�� �'���' ������'

&�' ����� ���� ���� � � � ������ 3 �2 � � � 22� /����� ������� = ���� �� �������� � 3 �� -��� � � � ���� �� � � � � � �� 3 ����� ��� ��������� �� � 3 �� Q����������� �� � ���� G 2 �� 2 � 3 � � ��� � � ���� =4� ?��� +� +� ��� � �� -��������������� ����� �� &26C4'� 2�2!22��@

��� �� ���� ������� ��H ���� �� �� ������� �� � ��H ��� � ���������� ��������� �� � �� � �� � �� � &/������ �� �� �� ���� ������� ��� �������������� ������ ������� ��� �� � ���� � �� � ���� �� 2 � � ��'

� � .#��� ���� �������� ��� H ��������

��� ��?�� 3 �@� �� ���� �� 8� �� "���� �

��� ���� � �� ���������� � ����� ����� �������� � ��� �� ��� ��� ��� �����I ������ �� ��� ��� �� �������

,�� ��� �� �� � ���� ��� ���� � ��� 2*9 �� S�� ��� � ���� ��� �������,��� ����� ��� ��� � ��� ���� ������F � � 2*9 �� <���������C��� ��� ��� �#��������� ����� � C���C ������

,�� �� �� ? � /���������� ����� ��&���� � &26C6'� 2*2!2**@ �� � ������������� �������� ���� ��� %��� ������ 2$ � � � $ ����� $ ������ � ��� ���� �� ������F �� ���� � �� � ��� � ��� ���� ��� #�� � ����� ����#���� , �#� ���������� � ��#�� ������ �� � � � ��� ������ ��� � � 2 � � ���� ������ �� 3 � � �� 3 $ ���� ��� �� ��� � ���� �� ,� � ��� ����������� ������� ��� �2$ � � � $� *$2$ � � � $� � � � ��$ � � � $2� ��� ������� &���� <$$�2* �� � 3 <' ��#� � ����������� �#�� �� �� ����#��>� � ���� ��� ��� ���� �� �� �� ���� � ������ ��� ���� � �������� ������������� �������������� ��� �� �� �� ��� ��� ���� ��� � ���� � ���� ���� � $>� �������� &�� 2'9��9� 8��� ��� ���� � ���� � ���� �������� �� ������ &�� 2'9 <�"��� � 3 2* ���� �� 2�*����<2�*4)�

,�� ������ �� �� � ���� �������� �������� ���� ������� ������ $ � � � $ ��� � �����#�� ��� �� ��� ���� �� �� ��� ���� � ����� ��� �� ��� &� � 2'9 ���� ������ ���� � � � � � �� ���� ��� � ����� �� ��� ���� � � � ���� ��� ���� � �� �H ��� &�G2'&�G�' � � � �� �� ���� ����� �� ��� 9&�' � ����� �#�� ��� �������F �� � ������ �� � �� � � ���� � ���� ��� � ����� �� �� ���� ���� ��� �� �� � �� ������������ ���� ����� �������� ���� ������� 7 ����� � � ����� ��� �� ����� �� ���

��

Page 131: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:- ��!��� � �"������� '�!� �!

���� ������ ���� ��� ���� ���%� ��� � ��M�� ��������� ���%���� ,�� ��� �� ������� � ���� �� ���� ��� #�� � � ���� �� �� � ����� "��� � 3 2* ���� ����� ����� ������� ��� �������#��� &2� 22� 64�� <6<�� 44�4)� �4)�C*� 222C�2<� 422�<�<� 22�6C�����<)42<22� 44*C����� *�42�*)6' ������� �� ��#��� &2� �� � � � � 2�' ��� � ���� � ���� ���� 4C��<<*�6�� ������ �#��� ��� �� �� ������� ��� ����� � ����� ��� ����� �K�� ���%����� ������� ���� �� � � ��� ���� 22 ����� ������ ���� ��� ������������ ���� � 3 2*�

,�� ��H � ��� � ������ ������ C� �� � ����� ���� � 6 4 ) 22 2� 2� 2 C 2* * < ��

��� ,��� ��� �� ���� �� ��� ���� �� ����

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

���� �� 3 �� ����� �&�� �' � � � �&�� �� 2' �� �� ��������� ���� ����� � ��� � � � � �� 2 �� ���� �� ����� � ������ � ������� #�� �� �&2' � � � �&�' � ���� � ���� ���� ����F �� ���� ��#� ���� �� ��� ��� ���� ������ �� ��� ���� ��� ��������� S�� ,��� �������� �� �#� � ���� � 3 2�

=�� �&�' �� ��� ������� #�� � � �� �� ����� � �� ��� � ���� �� � ������ ����� �� �� �&�' 3 2� ��� � ���� � ���� ������ �� � G 2 � � G 2 � ���� Q��������� � ���� ��� �� ��� � � ����� ���� ������ ���� ���� �� ?���� $�#��, ��

&26��'� �*6!�42�@,�� #�� �� � 9&�' �� 2 � � � 2< ��� &�� 2� �� 4� �� 2�� 2<� ��� *�� *C� )2� <)� C��

2�2� 22*� 2*6'� ��� ���� ��� ���������� �� �������#��� &2� 2� �� �� 2� )� �� 2� 2� 2� 2� 2�2� 4� <� 2' ����� ,�� ��H � ������������� ���� ����� �� � 3 2< ��

6 2� < � � 24 C 2 22 2* ) 4 2) 2< 2� *�

��� ,�� ������ ����� � ������ 2�< � ������ ���� 9&�' ������� ���� �� ������� ���� �� � �� � &�� ������� ���� �� �������'�

��� -� � � � � 6 ���� � ��� ��� #���� +� 3 ?�� �#� @ � � � ?�� �# @ ��� -� 3?� �#� @ � � � ?� �# @� ,��� ��� � ���� � � � � ���� +� 3 * � �� �H �� ��� � ����� � � � ���� -� 3 *� �� ��� ��� #���� *� �� �� �� ��� #�� �� ��� � +� 3 * �� ���� �������� � ���� ������ � �� � -� 3 * �� ��� ������� �����

-� �������� ��� ��� #���� �� ��� ��#�� ������ ���

&+�� � � � � +�' 3 &>� ;� =� �� :� 9� �� �� "� �'� &-�� � � � � -�' 3 &:� �� =� ;� "� �� 9� �� >� �'�

�� ���������� ������F ���� �� � � � �� 3 C*���<2)46 � C*���<6)42��� � ������ ������ �� � �� ���� ��� ��� #���� �� � ���� ������ �� � �� ��

������ � ��#� ��� ������ �� ����� � �H �#����� ������� �� ���� ������F ������� ���������� ��� �������#��� ������ � � ���� ���� �������

��� �� ��� ������� ����� ���� �9�� #������ �� � � � ���� ��� �9 ��� �� � � � ���� ��� � � � ���� &�� �� ��� ���� ����� �� � � � ��'� ��� #����� ��� ��������� � ��� �������� �� - ��������� ��� ����� ���� �� � � � ���� � �� � � � ���� � � � � � �� �� � � � ���� � �� � � � ������ � � � � � ����� � � � ����� �� �� ��� ���� ��� #����� ���������� ��� ��� ����� ,������� �� . ������ �� �� ������ �� ,����� ��*�4��1���� � � � �� �� ������ �� �H �#����� � � ��#����� ��� � ���� ������� ,���������������� �������� ������� ���� � 3 4 �� &2�*2�42*�2*4�24*�4*24�*4'�

+��� ��� ��� ������ � ���� � ��#����� ��� � ���� ������ �� ����H �#����� � � %��������� �� �� � ��� ������ ����� ���� ��������� � 3 &2 � � � � �'��� % 3 &2 � � � � ��2'� -� �������� ��� ��� M �� ��#�� �� � 3 4 �������� ��%��%��%��%��%��%��%�

��

Page 132: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �! ��!��� � �"������� :'

���� ;� ������� ��*�4��!�� �� � �� � �� ��� ������� ����� ���� �� 2� � � � &���'��� ��� ������� � ��� �������� ������� -� � 3 �� *� 4� )� <� ��� � ����� �� ���� ����� �� ������� ��*�4��!26� ��� ���� � �� � � �� �������E����� ������I 2� *��� � *� � � *� � )� ���� � *� � )� &8��� �� ������ &2�2*�*' � �� ��� ���� ��� ��&�2*�*2'� � � ��K����� ��� &2*2�*�'�' ,�� ����� ��� ���������� ������� � P �������� � �� ��� ��� � ����� � ��� ������ � ���� ������ �� �� �� H ��� ����� ��#��

� ����� �� � ����� ���� � �� ����� � ���� �� ���� � ������� ��� ��� ��� �� �� ��� �� �� ;� �M� ���� �� ����� ����2�2� ; � � ������ ���� ������ ��� ���� � ���

��

Page 133: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

!$�� %� ��&�' ���() (�*�(+ �� % �%,� ����%����, % (���-%�� �'�(��+�. +�� %�+� �$� ������ ���$%� �'�(��+� *�( */(�$�( ��*�(�%����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���. �(�%� �0. �60���&��(. ?�$� ���$��). ;0���� (��,��,. �. 7#. ��0��(��/���. ?%�@/�+ �A ?%=�5 A ?%��+�. �60�(��+�$. ���$%(& �0. �0�(�,$�1���. �(%$%� ���$%(&. #�0�(/�<�. ����%%+ ��-�(� &�. �)���. �:0�/55�� +�(�. �0�/�=��). ��$%�� �0 !0. �40�)�%++��, 5���=+ �* ��(�/�%����+.

��7�;. �2. #�0

�%�5(�&,� ��(�)3��,$�. . #0�%�>��&. �%(� ��&��). #�0�%+���, �/� ����+. �0�%)��). �(�$/(. �20,(%�$+. �2. ��7� . 4. #;0

��+%(�. ��/��� ���� �%�� �* B%�� ��((%(�.�/�,� �%*%�%��. �/�,� �(����. %�&B%(�� �(��. �0

�$%�,� (��,��,. �. 7#. ��0�$��&+. ��) �)&��). �0����' �(&�(. ��� ��-�(+� ����' �(&�(0�������� (��%����. �;0�������. ��5�(� �$(�+���$�(. ��. ��0������. ��/�+. # 0

���</,%�� ��(�/�%����. ��0���1%). ?�$� ��(���. �;0���=�. �%)���& %(=. #;0��(�/����. ��0��/��� ���������,. #;0�()��%(��$�+. ;0�)��� +�(/��/(� �* % ��(�/�%����. 4. ��0�)���. /�&�(����&. �40�)���� ��(�/�%����. �#0�)���� +$�*�. �4. �2. ��. �20

&� �(/�<�. ����%%+ ��-�(�. �)���. �:0B���% +�@/����. ��0B�(%�,�����+. �#0B�<=+�(%. �&+,�( !�<5�. 0B�(����& ��(/+. � 0B�/5�) �(%) ��&�. ��0B�/5�) �(/� %��$%�����. �60B/%� ��(�/�%���� ,���(%����. �:7�6. �20B/�=1�(�$. ���$%(&. ���. 0B/&���). ���() �(��+�. ;. �6. �0

�$(���$. ��&��� ������ ����. �6. ��. 2. �0+1%� ���$�&. �67�2. ��7��0

��,,(��. !���). �4. �60�(. ��, �$�%/ � �. �;0�(&C�+. �D%� �A �%/��. 60�/��(. ����$%(& ������� ������.

+/��%���� *�(�/�%. �0�/��(�%� ��(�/�� �� &�(����& ,(%�$. #;0�-�� ��(�/�%����. #. �;0�'��/+�-� �(. #�0�'�������%� +�(��+. �%(��%� +/�+ �*. �60�'���&��, % �%(��%� �(&�(. � 0

�%���(�%� �/�5�( +)+���. �40�%���(�%� (/��( */������. �20��((%(�. B%��. #;0��5��%���. ����%(&�. �* ��+%. �/�5�(+.

�;. #�0��(+�3������� +1%�+. �67�2. ��0��+�$�(. �/&1�, ?�+��$. �60��-�3�����( 1�(&+. �40���� ���(%����. ��7��. ��. ��. �;. #0�(%��=��. �-��E(� � ����� ��������. ##0

�%���%�. ?�+��$ ���$��). #20�%���+. D�-%(�+��. 60�%(&��(. %(���. �6. �:0����(%� ��(�/�%���� ,���(%��(. �27��.

��7��. �67�20����(%���, */������+. ���$��@/�+ *�(

/+��,. �:. �67 2. # 0���&+����. ��%� ?%). ��0�(%�&+�(� B�/5��+. #0

#4

Page 134: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�B�" �B �������F :0

�(%) 5��%() ��&�. �0�(%) ��&� *�( ��'�& (%&���+. �. 2. #. 60�(%) ��&� *�( ��(�/�%����+. ��7��0�(%) �%�$ *�( ��(�/�%����+. ��0�(�/� �* ��(�/�%����+. 67�2. �2. #0

�3�(&�(�& ��(�/�%����. �#0�%������. !����%� ��1%�. ��(�/��. �.

�27��. ��7� . 4. #;0�%�$. �. �27��. ��7��. :7 40

�%1%��. �40��%�. �(�%� ���$%(&. ��. �#. ��. �6.

�2. � . �0��'%&����%� &�,��+. 6. #;0���&��5/(,. �%(� �(��&(��$. �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��,$�G+ ��/(. ��(�$�%+��(�). � 08�/�$. B��%�& �(-�� � �. �. �-08�����G�%=$�(. H�%&���( �����G�-��$

��� ���� ���� ���� ������������. ��0

8(%/+�. 8%(� �$(�+��%� �(��&(��$. �60

�%�,&��. ���� ���(,�. ?(0. �6. ��. � 0��$��(. B�((��= ���(). �0��'���,(%�$�� �(&�(. �. 40��'���,(%�$�� ��(�/�%���� ,���(%����.

��. �#. �;7�:0*�( ��-��/����+. # 0

��'���,(%�$�� +/���++�(. �0����%( ��5�&&��,. � 0���=�& ��+�+. �#7�;. # 0���+=�. !����&. ?(0. 0��+=�-��+. H%��() ���+���-��$ ����������

������ ���� �����. ��0������++ ,���(%����. �4. �. #�0

%�&��%�&. ����(. �40 %��$��,+. �#. �#0 %�(�' �(�� �$��(��. #:0 %'��%� �������. #�0

��(%-). �&1�� �%(=�(. ?(0. �40 �,%���9 ��� ������� ����() %���++�+0 ����%� �������. #�0 �'�&3(%&�' �/�5�(. �:. �:. �40���� ����/��( . ��. �-. ��7��. � 0 �&/�%( �(%) ��&� *�( ��'�& (%&���+. 60 ���� �%(�� �+���%��+. :0 �(. �+$� ���� ����. ##0 �(����. �/�,�. #;0 �((�+. �(��+�. 0 /�������%� ��������. �:0 /�������%���� �* ��(�/�%����+. 40 /�������%��-� %��$%�����+. �60 /���+��+. �. �. � . �:. ��0 /�&). ����(. 0���� ��/������ �'��/+�-�3�(�. � 0 )(-��&. !��&) ?�%���. #�0

3�/5�. 67�2. �40�<��$/�+. ��5�(�. �20�<��. ��(�%�. �40�(�$�%+��(�) =��,$�G+ ��/(. � 0)55��9 � 35�� @/%����). ��7��0

���%$�&(%� ,(�/�. �0�&& ��(�/�%����. #. :7 40�(&3����$. ���$%(& ��5�(� ?%��+

�A ?���)�. ��. ��. �4. �6. �2. �60�(&�( �* % ,(�/� �������. �2. #0�(,%� ���� �(&�(. 4. ##0

�%=. �,�( %(=�-��$ ���� �������������. 40

�%(%���� ����/�%����. � . �0�%(��%� �(&�(��,. � . � . �#0�%(������ �* % �/�5�(. �60�����(&���. ��&(�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��%�� �$%�,�+. 7:. �:. ��. �#.

�:7�4. ��. ##01$�� �� /+�. �;0

��(�/�%����+. �7#;0%���)��,. 47�20���</,%��. ��0�)���+ �*. 4. ��0�)����. �#0&�(%�,�����+. �#0�-��. #. �;0,(�/�+ �*. 67�2. �2. #0�(%) ��&�+ *�(. ��7��0�3�(&�(�&. �#0��&������+%5��. �#0��-�(+�. � 7�#. �4. #�0

Page 135: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

-. �B�" �B �������F

��-�(+���+ �*. �. #0��-��/����+. �#7�;. #�0�/�������%���� �*. 40���%����+ *�(. 40�&&. #. :7 40�* % �/���+��. �7�. � 0(%�= �*. �:. � . #�0+�,� �*. #. ��0+�,��&. �40/��-�(+%� �)��� �*. �:0/�3&�1�. �#01���35%�%���&. �;0

�$�����+. ?�$� �%�(��= �(�%�. �40�� ���. �:. �2. �;0��%�� �$%�,�+. 7:. �:. ��. �#. �:7�4. ��. ##0���+E�E)D�+=�. ���*%�. #�0��+��/�������%����. 60�(�*�(����%� %((%�,�����+. ##0�(��/�������%����. 6. ��7��. � . # 0�(��(&�( �� % �(��. ��. � 0�(I����. �%�+ ?I/(,��. #�0�(/�++�. �%(%. #�0�/(� %��$%�����. :. �47�60

J/�/�. #�0

�%&��K��D�. �%&�K+. 40�%*%�%��. �/�,�. #;0�%�= �* % ��(�/�%����. �:. � . #�0�%�=��. ��5�(� ���'%�&�(. �2. ��. 60�%����(�. ��-�(% ��(%++�(. 40��L����& �(%) ��&� *�( ��'�& (%&���+.

�. 2. #. #�0��-�(+%� �* % +�(��,. ��. �;0��-�(+� ����' �(&�(. 4. ��. �#. �:. �;. �40��-�(+��,. �. �4. 2. ��� ���� ���� ���(%����0���%� �/��(%�+. �0��+%() ��(�/�%����+. �4. 40�����. B�(�� ����� �����. ��. �#0���$�. ����(��$ �/,/+�. �40��). �$�� 8/�%( ������� ���� ��. �0�I/&�,�(. �$(�+��%� �(��&(��$. �0�/+=�). �(%�=. ��. � . :. #�. #�0

�%-%,�. �%(�% B�%��. :. 4. # 0�%)�(+. B�(��$) ���,$. �0��&,�1��=. ��5�(�. ��0����E. �0. �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

�$/����. %/(���. :0��3�%�3��� 5�%(&. �60���=��+. �$%(��+ �(�1�. �60�����,��%� +�(���,. � 7�;. � 7�#0��+1��+. �;0�(/+. 60

&�(����&. � 0�1�+��&. ��0

��%� �(&�(��,. � 0(%�+���-� (��%����. � . �;0(%-����, +%��+(�� �(�5���. �;0(����(. �%�� �(���%�. #0(����(. !����%� $��%+. 601�+��& ��(/+. ��01�3���� *�(� �* ��(�/�%����. 40

��&�(����& �)���. �40��&���,. �;. # 0���-�(+%� �)��� �* ��(�/�%����+. �:0��(%�=��,. � 0��3&�1� ��(�/�%����. �#0�(�. B%(��. #;0

H%(�%����+. �:. �2. �0H%(��. F%%=�- ���� ����� ���� �����. ��. �#0H%�(�@/%��. �����. ;0H�������5�. ��5�(� �%� ?%��+. �40

!%�+$. ����$) ��5�(� ����$��. # . ##0!%)��. ��%�. �60!�%= �(&�(. �;0!���35%�%���& ��(�/�%����. �;0!���+. %(= �(��$%��. �0!�+���. ��&(�1. ��0!$���. �(�$/( $��%+. ��. #0!��*. ��(5�(� �%/�. �2. ##0!����%�+��. ��%���) ����. ��. ��. #�0!��+��. !��*(�& ���(,�. #0

��� �5��1�+� �'��/+�-�3�(�. #�0

F�+$�,%$%(%. �5/)/=� �A �5�� �. �60

F�/�,. ��*(�&. �%5��%/'. � 7�#. #:0

��

Page 136: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

��� ��� ��

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

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

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

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

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

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

��

Page 137: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

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

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

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

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

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

��

Page 138: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�������

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

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

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

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

���� ����� �������� ��� ������ ���� ��� ���� ����� �� ������ �� ����� �� �� ����� ���� ���� ��� �� � ����� ��� ���� �������� ��� ���� ������� ���� ���� � ��� ��� � �� � ��� ������� ������� �� �� ��� ������� ���������� ����� ����� ����� ��� ����� ���� ��� ��� � ������ � ������� ���� ���� ��� ��� ������ � ��� ����� ������ ������� ���� ������ ������ ��� ���� ������ �� ������� � �� ��� ���������� � �� ���� � !� ��� "��� �� ��� ���� � ���� ��� ��������� ����� �� ����� � ��� ��� �����#���� ����� �� ������� ��������� � ���������

$���� ���� ������� � ���� ���� �� ��� ���� ���� �� ��� �� �� ������������ �������� ���� ��� �� �� ���������� �� ������ ��� ������ ���� ��� ��� �� �� ���� �� ���� ���������� ��� ������������� �� � �� �� ����� %�� ����� � �� �� ����� � ������ ���� �� ���� �������� �� ������ �� ��� �� ���� ��� �������� � ��� ��� �� �� �� ���� ����� ��� ����������� ��� ��������

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

���

��

Page 139: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

�� �������

9��� ��� ������� � �� � ����� � ����������� ��������� ���� ��� �� ���������� � ���� ���� ���� �� &������� �!� � �!�*� �!�-� !�"�!� !�"�*�!� *�"�!�*�-� � *�-�!� :� �!� :�*� � :�*�!� -� � ��� -�" � ��� ��� ���� �� ����� � ����� ��� ���� �� ��� ���� �� � �� ���������� �� � ���� ��������� ���� ����� ������� ������� � ���� � �� �� �� � �� �� ���� ������ ���� �� ���� � ��������� �� �� ������� � ���� �� ���� .0 ��������� ���� ������4�� ���� �� ����4 � ��� �� � ������� #���� � ��� � ��� ���������� ������ ���� ������ ���� � ���

&��� � ��� ������ �������� �� ���� �� ��� ���� � �� ���� ����� � ������� �� ��� �� �� � ������� �� ��� ���� �� ��� ��� � 5����������7 ���� ������������� ����� 3 ���� ���� � ����� �� �� ��� �������� ���� ���� � ����� �������� ��� ��� )���� ���� ���� �� ��� *- � �����,� ���� � �������� :"�::� --� ��� ;!1 ���� � �� ��� ���� � ����� ��������� ���� ��� #�������� �� ��������� �� �������� -!� ..� .*� ��� .;� +� ����� ��� ��� ��� ����< 3 ���� �� �� ���� � ��� ���� � � �� ����� �� ��� � ����� ��������� #��������� +��� ����� � �� �� ����� �� ����� ����� ��� ��� �� ���� ������ �� ��� � ������ ��� ����� � ���� ���� �� �� �����

� ����� � ���� ��� �� � � �� ���� ������ �� ���� �������� ���� � ������ �� � ��� ������� ���� ������ � � ������ � ����� ��� �� ��� ����� � ���������� ���� � ���� ���� ��� ����� �� ������ ��� ���� � ����� ��� �� �� #��������� 5����7 ���� ��� /��� ������� �� �� 5� ������7 ������ � ���� �� �� � ��� ���� ��� � ���� � ���� �������� ���� ������ �� ��� ����� ���� ���������� 0� ;� 0� !.� !-� !'� !;� ".� " � "!� ""� "*� ":� "-� "'� * � *!� *"� **�*:� *;� *0� : � :;� - � -!� -"� -*� -:� -;� ';� ; )�=,� ;*� ;:� ;-� 0!� ����� .0�

� ��� ����� � ��� � ������ �� � >!�:- � ���� �� �� ���� ��� ���� �� ����� ������ �� ��� ������ ���� �� �� ����������� � �������� � � �������� ���� ���� ���� �� �� � ����� ���� � ���� �� ��� �� ��� ������ +�� �� ��� ������������ � ����������� �� ��� ���� �� ���� "!�� ����� )?�������� ���� ��� � ����� �� ����� �� �� �������� �� ����� � ���� ��� ���� ������ � �� ������� � ��� ������ �� ��� ������ ��� ���� �� ��� ������� ����2�,

@���� ������A

��������� �������� B� 9� C��� ���� ����

��

Page 140: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� �

�������� ������� �� ������������ (���������� ����������� �� ������������ �� 5��� ����� � ������������ ������������� �����7 �� �� ��� ����������� ��� �� ������������� + ��������� �� � ���� � �� �� � �� � �������� �� �� ���� � � �6����������� � � ������� �� � ��� �� �� ��� � ������ � ��D� ��� � ����� ��� � ��D� �� E� ���� �� 9#� �!�-=)�, ���� ���� �� ����� �

���

����� �� �� ����1 ��� �� ����� �� &������ "�*�! ��� �� ������ �6�������������� ������

&� ������ � � � ��/���� �� �#���� ��� �� �������� ��� � � � � ������ ����� ������ E� �� �������D� ���� ������� �� ������

� F � G � )�,

��������� �� ����������� ��� �� �� ���� �� �� � �6����������� � � �������� �� 5)�� �,6������������7 ����� �� )�� �,6����������� �� � ��� �� ����������G � ��/���� ���� ��� �� ������� � ��D�� � ��� ��

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

� �� � �#��� ��� ��� ���� ���� ��� ��� � $ ��� �� ������

%�� ����� ��� ���� �� ���� ���� � ��� �� � �� ����� ��� � ���� �� $�

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

���� �� ��� ���� ���� �� ������� )�� �,6������������2 E� ��� ��� ���� ������ �� � � � ���� ���� ���� ���� �� ������ � �� ��� ��� ���� ����� ��������� � � � �� � �����

��� G � � �G � G � F �� )�,

��� ���� ������������ ��� � .� ��� � �� ����������� �� � ������ ���� ������ ����� � �� ������ ��� ��� ������������ �� � � � ���� ����� �� ��� ��� ����� �� ������� ��� ��/���� �� ������� � ��� ��� �.� � � � � � � � � ��� � �� ������� �� ������ �� ���2

� �� � � � �� �� � .� )�,

%���� �������� �������� ����� ��� ������������� ���� �� ������� ��� ���� ����� � � � ���� ��������� �� ��� ���

!�� G � � �G !�� G !�� F�������

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

Page 141: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! � ���� ���� ��� ����� ����� '�!� �"

H ����� �� ��� � � �� ��� ��� ��������� � � � � � � � ��� .� �� ��� � � � �������

� � � � � � � � .� )�,

(����������� �� �������� ��� �� � ������� ������� �� ���������� ������������� ��� � �� ������� ���� �� �#���� ��� �� ���� ���� �������������?� ����� �� ���� )�� �,6����������� ��������� �� � ����������� � � G ������ ����� � �� � ���� ��� ��!����� !�������� � �� �� �� ������������������� � � ��#����� � ������� �� � � � ���� ����

� � �� � � � � � �� � �� � .� )�,

H�� ����� �� ���� �� � � � ���� �� ��� )�, � ��� �� � � �� � � � ���� �� ��� )�,� ����

�� F �� G �� � � � � � �� F �� G � �� F �� )�,

)��� ������� �!�-=-.,� +�� ���� �� ������ ���� ��� �� � ��� ���������������� ��������� �� ������ ������������� ��������� �� &� ���� $� ��� I����� ) 0-;,� :".=:" J� ���� � �� �����

�� F

��� � � �� � �1

������ � �� ��)�,

�� ���� �� ��� ������ �� � � � �� ����� �������� � ����� �� ���������� �6��� ��� ��� �� ����� ���� ��� � � � � ��� �� �#�� �� ���� ��� � � � � ��� � ��� �� � ����� ��� � � � � ��� �� � ���� )&�� ��� � ��� ������� �,

+� )�� �,6����������� �� � �� �#���� ��� �� � ���!� ��� � �G ���� �G ����� ���� � �� ����� ���

�G F �� G � � �G �� G ��� ���� ��� � � � � ��� �� � � )�,

��� ���������� ���� )�, �� ���

�� F �� ��� ���� F �� � ����� � � � � �� F �� � ��� �� F �� G � )��,

9#���� ��� �� � �� F �� � � �� ����

� F �� G � � �G �� G ��� ���� ��� � � � � ��� �� � .� )��,

� ����������� � � ���� �G ���������� ����� � ���� �� )�, �� �������

�� F �� ��� ���� F �� � ����� � � � � �� F �� � ��� �� F ��� )��,

?������� �� �� ���� �� ��� ���� �� )�� �,6����������� �� �#���� ��� �� ����� � ����� � G � �� ���� �� ���� � �� � � � ���� ������� ���� ����� �������� � ������ ����� ��� � ���D���� ������ ����� ������������ ����� ������� �� �� ���� ����� ��K���� ������� ��� � � ������� �

���

�F !.

������� ����� �� ��� ���� � F � F "������ ������� � ������������ ����� ���� ���� ���� ����� �� ��� � �����

��� ���� � ���� ��� �� ��������� ����� � �� ��� ����� ��������������� � � � ��� (������� � ����� �� ��� 5�����7 ��� �����

�� � � � �� F . .. .. .... . . � )��,

Page 142: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � "

� �� �

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

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

���))) ,-. �)� ��� �)� -))) .�����)�)) ,-� .)� )�� .)� .�)) �)����))�) ,-) .�� ))� .�� .)�) ��)���)))� ,-� .�) ))) .�) .))� ���)�)��)) ,.� -)� ��� �)� �.)) )����)�)�) ,.) -�� �)� ��� ���) )))��)�))� ,.� -�) �)) )�) ��)� ))�)�))��) ,�) -.� ��� �.� �).) )����))�)� ,�� -.) ��) ).) �)�� )�))�)))�� ,)� -.� ��� �.� �)). )���)���)) -.� ,)� .�� ))� )-)) �.��)��)�) -.) ,�� .)� ��� ).�) ��)�)��))� -.� ,�) .)) ��) ).)� ���))�)��) -�) ,.� .�� ..� )�.) �)��)�)�)� -�� ,.) .�) ..) )��� �))))�))�� -)� ,.� .�� ..� )�). �)��))���) .�) ,-� ..� ��� ))-) ��.�))��)� .�� ,-) ..) ))) )).� ���)))�)�� .)� ,-� ..� ��� ))�. ��)�)))��� �)� ,-. ... ... )))- ���.

����� ��� � F D��� ��� � F " ����� ����� � F !*� ��� ��� ����������� � � � � � ���� ��� ��������� � ��� D���� ���� �

!" !. 0 ' - * " ! * �

������� ��� ������ �������� �� � � ��� ��� �������� �� .� ��� ���� ����������� �� � � � �� ���� ��� ��������� � ��� ����� ���� �

!! ! ; : . 0 ; ' - : " ! .�

��� ����������� �� ������������� �� � � � �� ���� ��� ����� � .� �� ��� ����� ���� 2

. . ; - ! ! ! ! ! ! .�

��� ����������� �� � � � �� ���� ��� ��������� ������� ����������� �� � �� ���������������� � �� ��� �� ��� ��� ����2

! " " : ! ! �

+�� ��� ����������� ����������� �� � � � �� ������ ��� ���� .� ����� �������5���������7 ��������� �� �2

. ! ! * . . . . . . .1

���� �� ������� � � � �� F .�� .���� � � � .�� .�� � )��,

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

Page 143: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* � ���� ���� ��� ����� ����� '�!� �"

������ ���� �������� ��� � ����� ������������ ��� � � � �� ����� � � � �� �� ����������� ���� ����� �� � �� ��� ����������� ��� � �� � � � ���L����� ���� ��� ��� ������������ � � � � � ��� ��� ����������� �������������� � � � ��� �� � � � �� ���� ����� �� ����� � ����������� ����

M����������� ��� ���� � �������� ��� ���� ���������� ��� �� ������������������ ������������� ������� + ������ '�!� �!M � ���� �� ��� ������ �� � ������������ �� ��� �� ��� � � � ��� ����� )�� �,6�������������� �������� �� �� ��� ���� �� ����������� � ��� �� ����� �� � .� � � �� ��������� 6������ � ������ ��� �� ����� ���� �� ������� ���� ���� �� �� ��� ����� ���� ������ ����� )&�� � �� ������� '� =..� ����� ������� � ������ ���#����� � ����� ������� ��������� ���� �� ������ ��� ����� ����� �����)��� � � � ��,� �� ��� ������������ � ���� �6������������ �������� ���� ����� ��� ������ ��� ��������� ��� ������,

M���� ����� ������� �� ��������� ������������ �� ��� ���� ������� ���� � � � ����� ����� �� ��� ����� � � ����� �� ��� ���� �� ����� ������������ ������ ������� ��� ����� �� ��� ������� ���� ��� ��� ������ ���� � �� ��� ������� �� �� �� ��� ��� � ��� �� ���� � ���� �� ���� ���� � ���� � ��#������ ������ ���� �� �� ��� /�� ���� � ���� � �� ��� ��� � ?� ����� �� ����� F " ��� � ����� ����������� ����2

?� �� F !� "� � � � � �� )�� ���� ���, �� ��� � �����2?� �� F � !� � � � � �� � )�� ���� ���, �� ��� � �����2?� �� F .� � � � � � �� � )�� ���� ���, �� ��� � �����2����� ��� ����������� �������

)��,

)&�� ��� ��� ����� ��������� �� '�!� � =)�,�,H� ��� ���� ���� ���� � �� ����� � � ��� �� ��� � �� ��� �������

������������ ������������ � �� � ����� ��� ����� ����� ��������� ���+ ������ '�!� �!M� ���� � �� ��� ��� �������� � ����� �� ���� ��� �� ����������� ���� �� ��� ��� �����#���� � ������ ���� � � � �� �� ���� ��� ��� ������ ��� ���2

�� ����� � )"�#�����!�� ��������� ,� ���� � ������ �������� � �6������������ �� � � � ���� � ��� � ������ �.� � � � � � � � �� ����� � � � � .�+�������� ����� �� ���� ��� ���� �� ���� �� ������� ��

��� I������ �D��J &�� �� � � � � � � � �1 � �� ��� ���� � � ��� ���� � .�

��� I������J ����� ��� ����������� �� � � � �����

��� I?��� ��J &�� � � � ����� ��� � ��G F ����� ��� �� � �� ��� � � �G 1����� ���� �� G F �����

��� IB���<J �������� ��� � ������ � � ��

��� I������� �� �J &�� �� � �� G ��� ���� �� M!�

��� ������ ���� � ���� � ������ �� ��� ���� � �� ��� �D�� &��� M" ������ � � � /��� ��� �������� � ����������� � ����� ���� F �� G �� ��� �������� � ���� ������������ �� ��� ����� � �� ������ �� ��� ���#�� �����

� �� � � � ���� � �1 )��,

Page 144: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � :

��� ���� ��� � �� �#���� ��� �� � )� � �,6����������� � ��� � � � ��/������� � � � � � ��� �� ��� ���������� �� � �� ����� ����� �

�������

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

� � � � � �� � �� ���� ��� ��� �� ���� M" �� ���������

��

�G���!

��!

�G� � �G

����

.

�F���

�G���!

�G� � �G

��

�F��

�G

�)��,

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

�G

����

�F

�A

)�G ,A )�� ,A

��A

�A �AF

�G )��,

����� �� ������ ���� ���� �� ��� ���� ���� � � �� �� + ������ M �� #���������� �� ���� ������

%�� ��� #������� ��)� G , ��� �� ���������� � ��� ���� � �� ��� ���� � �� ��� � ������� + ������ M ��������� � ���� �� � � � ���� ��� �� ������� ���� �� � ���� �#�� � � � � ?���� ������� ���� � ���� �� ���� ���� ���� ����� � ��� ����� � ���� �� ������ �� ����� M* ��� M:� ����� ��� ������� �� � � ��� ���� �� �������� �� ��� ������� /��� ������ ?� ����� ����� �� ���� �������� �� ��� ���� ������ �� ���� ������� �� ��� ! .� ��� ��������������� �� �������� � ������� ��� ����� ����������� ��� �� � �����6�������� � ��� � ������2

�� ����� � )"�#�����!�� ��������� ,� ���� � ������ �� ��� + ������ M���� ����� �� � �� �������� � ������������ ���� � � ��

��� I������ �D��J &�� �� � � � � � � � �1 ���� ��� ���� � �� ���� � .� ���� � ��

��� I������J )+� ���� ����� � �� ��� ��� ��� ����� ���� ���� ���� ��, ����� �������������� �� � � � ����� ����� � � .� ��� �� � ��� �� �� ���� �-�

��� I9��� ����<J � �� G � ��� ��� �� � ��G ��� ���� �� �!� H������� ���� � !�

��� I?��� ��J &�� ���� � � � ��� � � �� G � � � F ����� ��� � � � G �������� ���� ���� ���� � � �����

��� IB���<J �������� ��� � ������ � � ��

��� I������� �� �J &�� �� � �� � � � � � ��� ���� �� �!�

L�� � F . �� ���� �! � ��� �� � � �� .� �� ��� ����������� �� ���� �* ������ ��������� 9������ - ����� ��� � ���� ��� ��� ���� � + ������ ��

L����� ���� ��� ������� � ������ �� � �� ��� ������ �D����� ����� M ��� � � ��� �� ��� ������� ���� � + ������� M ��� �� ���� �� ��� ������ ��� ������ �� ��������� ��� ���

���

������������� � �� �$��� ���� �����

������� �� � �� �� ���� ���� �������� ����� ������� ��� ��� � �6������������� �G ������ ������ ���� ��� ��� � � ������� ���� �� �����������1 �� �������� ����� ����������� ��� �� ��� ��������� ��#������ �� � � � �� � ���� ��������� ������� � ������ ���� ��� ��������� ��#������ �� � � � ���

B���� M���� ������� ������ � ������ ������ � + ������� M ��� �I������� ���� ��� � � ��� ����� ������ �� 9� ?� %��������� ) 0-*,� !'=".J2

Page 145: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- � ���� ���� ��� ����� ����� '�!� �"

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

�G � � �G

���!

�G���

�)��,

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

%����& ���� ������

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

����� ���� ��� F �� � � � � � ���

��� � ��� ���� � �� � � � ���� � ���� �� ��� �6������������ � �.� � � � � �� � ��

E��� � F "� � ����� �� ��� ���������

�G���

�G���

�����

�G���

�G���

�����

�G���

�G���

�� � � � �

��

�G���

�G���

����� �������� �� ��� ������������ ������ �� ��� � ���� � �� ������ �����#����� .� � !� � � � � 0� ������ M ����� �� � ���� ��� �� ��������� �������������� ������ � ��� � ����� �� ����� �������� ���� ����������������� � ���#�� � �� ��� ��

� F����

�G � � �G

���!

�G���

�� �� � � � �� �� � .� )��,

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

�� F � �� F�� �� ����� � �

� ) �� ) � � .� )��,

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

� �

� �

)

) )

)

.

1 )��,

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

L����� ���� �� �� ��� ����� ������ � �� ��������� ���� � ����1 �������� ��� !� ����� � �������� ?�������� ��� ����� � ����� �� ��� � �� ���������� ��������

��

�1 ���� ��� �������� � ��� ���� 5������� ����7 �������

��� ��#����� � ��� � ���������� �� ��� ���� �� ��� ��� �� ���� ���� �� ��� � ������ � ����������� �� � � � ��� ��� � ������������ ���� �� �������������� �� �� �� ����� ����� + ������� M ��� � ��� �� ������ �� ���������� ������ ��� ����� �� ��� � � ��� ������� ��� ���

��� ������� ������� ��� �� �� �������� �� ������ � � �� )��,� ������ � ���� ��� ��� ������� � ���� �������� ��� ���� ���� ���� �� ��� ���

Page 146: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � '

� � ����� ������� ������� + ������ � �6������������ ����� �� �������������� �� ��� � � ���

M���� ��� ��� ��� �� ���� ������� ���� �� ���������� � ������ � ������ ���� � �������� N�� ������ �� ������� �� ���� � ����� ���� ���� ����������� � ����� � � � � ��� �� ����� � ��������� ����

���� � � � � � �� � ��1 )��,

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

� � F ������� G � � �G ��� G ��� � �� )��,

���� � �� ��� ���� �������� � � �������� 9#���� ��� �� �� ���� �� ��� � ������� � �.� � � � � � �� � ���� ���� �) , F

���� �� � � 1 ���� ������� ��

�� �� �� ��� ���� E� �� ���� � ����� � ������ �� �� � � � ��� ���� �� � � � �� � .� �������� ��� ��������� ��K���� � �� ��� ���������� � )�, ������������ � �� ����� � �� ���� ��� ���

9��� ����� � ������ ��������� �� � ���� � ��� ��� �� ��� �� �� ��������� ����� � ����� ( �� � ��� ����� � ���� ����� � ���� �� ����� �� ��� �� ����� �� ��� ���� � ���1 ������ � ���� � ��� ��� ������ ������� �� ��� ������ ���

�� ����� � )'���� � ��� �� ,� ���� � ������ �������� � ����� � ������ � � � �� �� � � �������� ����� ����� � � � � ��� ��� ��� � � E� �� � F �������� � � � ��

��� I������ �D��J &�� �� .� �� � �� ��� ! � � �

��� I������J ����� ��� ����������� �� � � � ��� ����� ���� � � ! ����� � ���������

��� I�� �� ��� ���J � �� . ��� ! � ��� ��� � � � G � �� � .� ! � ! � ������ ���� �� ?!�

��� I�� �� ������� ���J �������� � � F .� H�������� � ���� �� G ���! � ����� ��� �� � �� G � ! � ! � �� � ��� ���� �� ?!�

��� I8����� ���J &�� ! � ! G ��� � �� �� � ��� ���� �� ?*�

L����� ���� ��� � ������ ��� ���� � ������ ����� � �� �� ������ �������� ���������� � �������� +� � ����� � . �� ���� � ���� �� ��� ������� ���� ������ ������� ��� ��� ��� � ������� ����� ����� � ����� �� � ��� ������ ������ ��������� �� ��� ����� � ����� � ������������ ������� )��� ������� !.,�

��������� �� ��� � ������ 5�������� ��� ��7 � ��������� ������ �� ��6����2 �� ���� � � ����� � ������ ���� ���� ") , F

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

���� ���� ���� � ��� ���� �������� � �� �� ")�,� + ������ ? �� ��� � ������6 � � ���� ��� �� �� �� ���� ��� ��� ������� �� ���� �������� ����� ���� ��� ��� � �� ���� ?� ����� �� � ��� � �� ������� � � � � � � � �� � ���� �) , ��) �, � � ��� ��� ") , � ") �,� + ������ ? �� ������� ���� � �.� ��� ���.�� ��� ��� ���� ������ �� ���� ������ ��� �������� E� �� �������������� � ��� � ������ �������� ��� �� ���1 + ������ ? �� �������� �� �� ���������� ���� ��� � ��� ����� � ������� ����� �� �������� � � ������

Page 147: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

; � ���� ���� ��� ����� ����� '�!� �"

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

?� ����� �� �� ��� ��� � ���� L�/������ ���E� ���� �� �� � 5��� ���� ��� � ������72 ���������� ���� ���� ������� ��������� � � ��� � ���� �� ����� ��� ���� ��� ������� ����� E������ � ��������� ���� ��� �������� ���� �������� � �� ����� ���� (�� �� ������ � ��#������ ����� �� ���� ���� )�� �,6����������� ����� ����� � ����<

��� ����� �� ���� ��� �� ��� � ���� ����� � ���� ������� ������ ?������ �� �� ���� ��� ���� � �� ������� � �6��� ������ ��� � � � �� �� ����� 6����� ��� � $�� ����� ���� )&������ '�!� � ,� ��� �� ��� �� � ��������� ���� ����� � � .� ��� � �� ��� ��� ���� ������ �� � ��� ���� ��� �����

@���� ��� ���2 $�� ����� ���� �� ������ �� ��� ������� O� F .O���� O��� � '�!� � =)�,� �� ��� )�� �, ������ �������� ��� �������

O�� F .O������ O����� )��,

���� �� .� E� � �� ���� O�� F .� ��� O�� F �� ������ �� �� � �� ����������� ���� O�� ������ ���� .� � ��� ���� ���� .� ��� ���� �� .� ������������ �� ��� ����� �� )��, �� �� ��� ��� � ����� � .O����� �� ��� ��� � ����� � O������ ���� � �� . .��� ��� F . .��� ��� �� .� ��� F .���. ��� ���� � � !� ��� ���� �������� ��� ��� ����6��� ���������� ������� � F � �� ������ ���� ?� ����� �� O�� �� ����� �� ��� �� ���� �

... . . . ... . . .

.. . . .. .. . . ..

.. . . . . . .. .. .

.. . . . . ... .. .

. .. . .. . .. ...

)��,

��� O�� ��� �� ���� �� ��� ��� ��� �� ���� � ���� ���� H�� ��� ���� ��� ��� ����� ��� ��� � ����� ���� ��� ���� I����� �������� � O�� ������������ �� B� �� ���� ��� (� L� M��� ���� �� ��� "#�� ) 0'",� '-= ;.1� ��� ��� ��� ���������� ��� �������� �� P� 8� %����� $� 9� ���� ��� 9� N�8����� �� ���� �$ ) 0'-,� : '=:! �J

E��� �� ������ ��� ��������� ����� �� )��, �� ��� ����������������6 ��� ��� ������� � ������� ������ ������� �������2

! . *" :*. :" "!. *"! :* :"!"! *!. :*! :!." . *! :*" :! *". * . :". : .

)��,

��� ��� ���������� �� ���� �� ��������� ���1 ��� � ���� ���� �� �� � ������ �� ��� � �� ���� �� ������ �� ���� +�� � ���� ����� ��� �� ��� � ���� ����� ���������� ��� ���� �� ��� �� ����� 2 ��� ���� ���� �� � � � ����

Page 148: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � 0

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

)��� ������ ����� � � � � )� ,���, )��,

�� ��� ����������� �� � ��� O��� ���� ������ � ��� �� ���������� �������)��, �������

O�� F O������ )�G�� ,O����� )��,

� �� . ���� �� ��� �����6 ��� �������� ������� � �������� ��������� (����6#���� � ��� ��#����� ��� �� �������� ������ � �� ��� � ����� � ������ ����� E� @� 3���� I��� ��� �� ��� � ��� ���� �� � ) 0'0,� -"= '!J2

�� ����� % )(�������)���� ��������� ,� ���� � ������ �������� � �6������������ �� � � � ���� � �.� � � � � � � � � �� ����������� ��� � ��� � ��6������ ��#����� )��,� �������� ���� � � � &��� 8" ��� ��� ����������������� �� ������ � �� ���� � ����

%�� I������ �D��J &�� �� � � � � � � � � � ��� ���� � ��

%�� I������J ����� ��� ����������� �� � � � �����

%�� I9��� ����<J � � �� ���2 � �� G � ��� ������� �� �� ��� ���� �� 8!��������� ��� � � ! ��� �� �� 8*� � � �� ����2 � �� .� ������� �� �� ��� ���� �� 8!� �������� ��� � � ! ��� �� �� 8:�

%�� I�� �� ������� �� �J )+� ���� ����� �� F ���� G �, � �� � �� ��� �� � ��������� � � � !� ��� ���� �� 8!� H������� ������� � �� �

%�� I�� �� ������� �� �J )+� ���� ����� ���� F � � !�, � �� G � ����� ������� � �� � �� � �� G � ��� ���� �� 8!� H������� ������� � �� � ����� �� 8* � � � ��

9������� ! =!: ��� �� ���� �������� � ���� ���������� ��#������ H�� ����� �� � ���� ��������� �� ������ M2 ��� ���� ��� ������ � � � ���� �� ��������� ������� ���� �� ����

� F���G

�������G

��

�G � � �G)� ,�

���G

!

�� )� ,�

���G

�� I� ���J )��,

���� ���� ���� � �� ���� �������� E� ��� �� ���� ��� ������������ � ��� ��� 5� �������� ����������� ����� ������7 � ����� �1 ��� �����#������� ����� �� �� ���� ���� �������� ������ ��� � ���#�� ������������ � ����� � F

����

�G��

����� � .� + ������ 8 �� � �� ��� �� ���

�� � �� ���� �������+ ������ ��� ������ � )��, ��� )��, �� ��� �� ����������� ���� ����

�� ����� �� � � ��� ����� ������� �� �� �����# ������ � ���� ������ ��������� E� ��� + ��#����� � ������ #�� � � � � #� �� ���� �� �� �� ��� �� ������� � ������ ���� � ������ ���� ���� ����������� �� ?� ����� �� � "6������������ ���� ����� ���� :" ����� ������� �� )��,�

$�� �� ��� ����� ���� ��� ������ ��� �� ������ �� � ��� �������� ���� ?��� " � &������ -�"� ��� ���� ��� ��� ��� � ���� ���� ����� ������ ��E��� � ��� �� ������� �� ��� ��� ���� ���� ���� ���� �� ������� /��� ���� �/��� ��� ��� ������������ � ����� ���� � ������ ����4���� ��� � ����� �

Page 149: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

. � ���� ���� ��� ����� ����� '�!� �"

� ������4����� ����������� �� ���� ������ � ����� ��� �� ��� ������������������ �� ��������� �� ������� ��������� �������� N��� � ��� � ��������� ���� ���� � ��������� �6��� �� ���� ������ ������� ���� ��� �� �� ���������� � ��� �� ���1 ���� � �� ��� ������ � 5� ��� �������7 )+ ������'�!� �!3, ������ ����������� �� � ��� �� ��� � ��� ����������� ����������� ���

��� ��� ����6��� ������ � + ������ 8 �� � ��� �� ������ ���� ��������� � ��� � ����� � ��� ����������� �� ���� ����� %�� �� ����� ���� � ������������������ �� �#���� � ���� ������ ��� � ��� ������� �� ���� ������� �� �� ����� ������ ��� ��������� �� � � � �� ��� ?� ����� �� + ������ 8 �������! . ���� "!.� ��� )��, ��� ���� ���� ���� 5�������7 ������

��� ����� � ���� ����� ��� �� ����� �� �� ��� ���� )��, �������� ������ ����6��� ������2 E� ������� ���� ��� ����� . .��� ��� �� � ������ .���. ��� ���� � � !� @���� ��� ������� ����������� O�� ���� ������������� � ��� �� .. . . � ���� � �������� ��� ... �� ��������� . .. � ���� ����1 ��� ��� � ���� ���� �����

+ $�� ���� � ������������ �� ���� �� �� ���������� � �� ������� �� ���� � ��� ������� �� �� ���� ����� + ����������� ������ �� ��������D���� �������� �� �� ������ �� � ���������� � ��� ��� . . ������������� � � � ���� �� ���� �� ��� ������� ��� ����� E��� � ����������� ������ �� ����� ����� �� � �� � �6���� ����� �� �� �6����������� �� ������ �� � ��� ���� �� � �����

+ � ���� ����������� � )��, ��� �� � ��� �������� � )�� �,6������������ ���� �� � ������ ������������� ��� ����� ���� �� �� �������� ���#����� ���� ������ ���� .� � ��� ���� ���� �.�� ��� ��� � ����� ��������������� ���� � ���� ��������� �2 M�� $�� F .�� $�� F �� $���� F �� ���

$�� F .$������ .$��������� $����� � �� .� )��,

+� ��� ������ � ���� ��#����� �� ���� . �.��� � ���� �� . ���.���� ��� .� ��� � ���� �� .� ���1 ���� � ����� ���������� �� ������������ � 6������ ��� ������ ��� �#���� ��� �� /��� ����� � .�� ��� ������������ $��

� � F � F " ��

... . . . . .. ...

.. . . .. . .. ...

.. . . .. . . . .. .

.. . . . . .. . . ..

. . . . .. .. . ...

)��,

�� �������� ��� ��� ��� ����������� 5���� �������7 ��

! . *!. :"! : ." . * . :". :*."!. *". :" :* "! *" :! :*!*! *"! :!. :*"

)��,

��

Page 150: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� �

E��� � ����������� ������ � ������ ������������ �� � � � �� �� ���������� ��� ����������� ������ )�, � ������������ ���� ���������� �� � � � ��� �������� ��� ������ ���� �� � ��� � ��� ������� �� ������� �� ���� ����� +������ �� �� �������� �� ��� ����������� ������� )�, � )��, � �������������� � � � �� � �� � � � ��� �� � ��� )��/�����, ���� ������ ���� �� ��������

&�#��!��� �������� %�� �� ��� �� ���� �����A + )�� �,6��������������� �� �������� �� � ��#����� � ����� � ����������� ���������� ���� ������� . . � .. ..� �� ���� ����� �� ��� ������ ���� ���� ���� ������� ���� � ����� �� �� ������ �� �� ���� !� M���� �� ���� ��������� �����������)!�������

�������� ���� ����� ���������� ����� � ����� �� ����� �� ������� ���6����� �������� ������� ���������� � �� ������� �� ���� �� �� ������� ��� ������ ���� ��� �� ��� �� ������� ���� �� ���6����� �� �6��� ��������� +� P������ ��� B� N�(���� ������� ���� � ���� ������� ��� �� ���� ���������D�� I��� ���� ��� �' ) 00:,� :"= :0J2

������ &� �� �� .! ����� �� �� ���� !� �� ��������� � �� � ���� �� )�� �,����� ���� �� ������ ����� �� � ��! ���� � � �! ����� �� �� ���� ���"�� �������! ���! �� � ������ ���� �.� �� ���� ���� . �.��# ��� ���� ������������� �� ��� ������� �����! �

���

%����& ��� ��� � ������ � �� �� ���� � F � F 1 �������� �� ��� ����������� � G �� ��� ������ ���� � �� ������� ���� ���� ��� �� %������ .&������ ���� ���6����� ��� �� ������� %����� ��� &������ � � F � %����� ����� ���� � ����� .�1 ����� &����� ���� �� ��������� � � ������� � F � H� ��� ���� ���� � � � ��� ���6����� ��������� ��� ��� ���� ��� ��� ����� � %����� ������ ����� ���� 1 ����� %����� F ������� � ���� �� � &����� ���� �� ���������� ����� ���� �� 1 ���� � �� ���� �� � � F � H������� �� ���� F � �� ��� ���� ���� &����� F �

������ �

���� �� ��� ��������� �� .� ���.��� �� .��� �.����� �� ���6����� �� � �� F ��� F !�

��� ��� � ������ L ��� �� ��� � ����� ������� ��� �� ���� �� .2

��� F

���� �������� .���������� � � � �1

�������� .�������� � F � �1

�������� . �� � F F ��

)��,

+ ��� � ������ ��� F .��M�� �� ��� '�� F ���� ���(�� F ����� ����� ���6����� �������� ���������

�� 3�� �� P� (���� �� 0'-� ���� ��� ��� �K��� � ������� � ������ � ��� � ��� ��� ���� �� ��� � ��� ���������� ��������� �� ��� ���� ������ ��� � ���������� ��������2

'�� F (������ .'�����1 (�� F '������ .'������ )��,

5�� ���� ��� ���� ����� ���� ��� ����� ����� ���� ��� ���� �������1 ������ ��� ����� ����� ���� ��� ���� ����� ���� �������7 ����� �#�������

��

Page 151: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

! � ���� ���� ��� ����� ����� '�!� �"

� �� �

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

�� / ����,-. ,.) .�) -��,-) ,.� .�� -�),-� ,)� .)� -.),-� ,�� �)� -.�,.� ,�) -)� -.�

��� / ��

,-. ,�� -.� -)�,-� ,)� -.� �)�,-� ,.� -.) .)�,-) ,.) -�) .��,�) ,.� -�� .�)

�� � � � ������ �� ��� � � ��� �� � �� ����� '�� ��� (�� �� �� � ���� � �� �� ��������� ������ ���� '�� F (�� F ) )��� ����� �����,� ���� '�� ����� ������ ���)�� , ���� ������ ��� (�� ����� � ����� ���)�� !,� ?� ����� ����� � ! ����� ��� � ����� ������� � � F � F "� ����� �� �#���� ��� �����6 ����� ������ ������� � ��� ��� ������ ������

(���� ������� ���� � ������� ��� ���������� � ����� ��#������ ����������� � � �� �����

�� F

�'��� � �G � �� ���1

(��� � �G � �� ����1 �� F �'��� � �G � �� ����1

(��� � �G � �� ����

)��,

I&�� �������"� $"�� ���" �$ ) 0;0,� ! :=!*!�J ���� �� ����

�� F

� ������ . ������ � �G � �� ���1

������ . ������ � �G � �� ����1)��,

�� F�. ������ ������ � �G � �� ����1

. ������ ������ � �G � �� ����)��,

E��� ��� � �� ���� �� ������� �� ��� �� ���� �� �� �� ��� ������� ��������� ������ � �� ���� � ����

������� ��� ��#����� �� ��� �� �������� �� � �������� � ���� � � ��6����� ����� �� ����� ����� ���� ��� � �� ��� ��� �� ������� M�� �� ��� ������� � �� ����� �� � ��� �� � ������ � �� �� �������� �� ������ ���� �������� ����� �� �� � ����� )��� ���� � �� ������ ��� �� ��� ����������� ��� �� ��� ����������� ��� � � ��� ������, &������ �� ���� �� ���� ��� ��� � �� � � � ��������� �� F � ��� �� � � ����� � �� ������ � � � !� ���� ! �� ��� ������������ ���� ���� F �1 �� � �� �� �� F � ���� ��� � ����� ������ �� ��� ��� �������� � ��� � � � ��2

&�� � � !� � �� F .� ��� �� � � � � � G � ��� ����� ���� �� F � �������� � � F �1 �������� ��� �� � .� (����� ��� � � � ��� ���� ��� ���� ������� �� ��� � � � � ��� ! ������� � �� ��� ������ � ��� �� ������ ����� �����

)��,

��� ������ � ���� ������� ����� �� ��� ��� ���� ��� ��� �� ��������� ���� ������2 E� ��� ���� ���� ��� �������� � � � G �� �� ������ ������� ���� �� ��������� ����� �� ��� ������ )��� ������� "-,�

��

Page 152: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � "

%� ��� �D��� ��� ���������� ���� ���� ���� ���� ������ �� )��, ��� )��,��� ��� ���� � Q��� ��� ��� �������� ����� �2

�� ����� " )��� �* �+�����,� ���� � ������ ������ � )�� �,6��������������� � � � ��� ���� � F �G �� �� ��� ���6����� ��� � (������ ��#����� ���

"�� I������ �D��J &�� � � . � . � � � �� � � � � � � � �� ��� �� � � . � � � �� � � .� ��� ! � �1 �������� ��� ! � ��

"�� I������J ����� ��� ����������� ��� � � � ���

"�� I?��� � ��� ������J &�� � � !� � �� F .� ��� �� � � � � � G � �������� ���� �� F � �������� � � F �1 �������� ��� �� � . ��� ���� ���6��� �����2 $� �� (* � � �� ��� ��� � F .� �� (: � � �� ���� ���� F .� �� (- � � �� ���� ��� � F .� �� (' � � �� ��� ��� � F .�

"�� IN��� ���� ����J &�� ��� � � � � .� � ! F � � ��� ! � � � 1�������� � ! F � � ��� ! � �� 8���� �� (!�

"�� IN��� ���� ����J � ��� F .� �� �� (*� H������� ��� ��� � � � � .�� ! F �� ��� ! � ���)�� !� ,1 �������� � ! F �� !� ��� ! � �� � 8������ (!�

"�� IN��� �� ����J &�� � � � ��� � .� � ! F � � ��� ! � �� 1 ��������� ! F � � ! ��� ! � � � � 8���� �� (!�

"�� IN��� �� ����J � ��� F .� �� �� (-� H������� ��� � � � ��� � .� �! F �� !� ��� ! � �1 �������� � ! F �� � ��� ! � �� !� 8���� �� (!�

(������� �! "���)� ��*+����� ��� ������ �������� � + ������ ( ����� � ���� ��� ������� ��� � � ��� ��� ���� ��� �� �� #���� �����������$���� � ��� ����� ��� � � � ��� �� �� ����� � F � *� F ���� !� ���

*� F ���) � *���,� "� F )*� G �, ��� !� �� F )"� G �, ��� !� )��,

� � � � .� ?� ����� �� �� ����� ���� � F !- ���

� � � � �� F .. .. .... . . . .�

*� � � � *�*� F . .. .. .... . . .. .. . �

"� � � � "�"� F .... ... . ... �

�� � � � ���� F ... .. ....... .. . �

)��,

E��� ����� ���������� �� ��� ���� �� ��������� ���� "� F . � ��� �� � � ���

� �� ����� 5����� ��7 �� ���� ���� �� �� ��� �������� )��,=)��, ����������� ��� � � � ��� ������ ���� � �� ��� � ��� ��� �� � .� � � �� ������� ���� ������ �� ����� ���� ��� �� �� �������� �� + ������ ( �� ��������� ���� ��� � � � �� �� �������� � ! � � � �� ����� ��� �� ��� �� ������ �������� ����� � ���� � ����� ����������� ������ �� (������ ��#����� )���������� "0,�

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

��

Page 153: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

* � ���� ���� ��� ����� ����� '�!� �"

�)�, � �� ��� �)�, � �� ���� �G � F �� ���� �)�, F �)�, F )� ������ �������� � � � . ���� ��� ��

���)�G , F

�� �)�,� ���)�,� � � �� ����1

� �)�,� ���)�,� � � �� ���1)��,

���)�G , F

� ���)�,� � �)�,� � � �� ���1 ���)�,� � �)�,� � � �� �����

)��,

����� ��� �#������� ��� �� �������� �� �� ��� � ����� �� ����

���)0, F ; �);,� - �)-,� * �)*,� � � � � " �)",� : �):,� ' �)',1 ���);, F ' �)',� - �)-,� * �)*,� � � � � " �)",� : �):,1 ���)0, F - �)-,� * �)*,� � � � � " �)",� : �):,� ' �)',� ; �);,1 ���);, F - �)-,� * �)*,� � � � � " �)",� : �):,� ' �)',1

)��,

������ ���� ��� ���� ������ ����������� �� � �� ��#������� ��� ������� �5� � �7 �� ��� ���� � ������� �� ��� �� �� � �2 E� ���� � ���� � ���� � �)�,

��� � �)�, ���� � � ��9����� � ���� �K���� �� ��� ��� ��������� � ���� � � ��� ����������

�� )��, �� ����� �� ��� ������� ���������

� � � � .� ;� -� *� !� .� � "� :� '� 0� � � � � )��,

����� �� � ����� ��� �� ����� ��� ����������� ������� ���� � ���� � ���������#������ � �� ���� � ���� � )��, ���� �� � �� ����� ��� ������ � � .���� �������� ���� ����� ��� ������ ���� ��/����� � ������ ��K� �� ����� � !� 8����� &��� �� ��� ��������� ��� ���� ����)����� � ���� ��#������������� �� ��� ������ �� �� �������� 5���� ������ ���������� ��� � � � 7�)L����� ���� � �� ����� �� � ��� ���� ��� ���� � ��� ���� ����� ���� �������� � � ����6��� ������� ����6���� ���1 ��� ������� -� = ;�,

E� ��� � ����� ��� �������� � )��, ��� )��, ����� �� ��� �� �� �������6��� �� ������ ���� ����� )��,� ���� ��������� �� �������� � ������ ��� ������� + ������ (� ��� ��� � ����� �� � +)�, ����� ��������� ��� �� �� ������� ������� ���� � �� � ����� � ��� ������� �� �� 9������ *: �������� ��� ����� ��

(&�#��!��� �+������ ���+������� (������ ��#������ ��� �� � ����� ��� �� �� � ������ ���� �� ������� ����������� � ��� �� ����� ��� �.� �� � �� � � � �� � �� �� � ���6����� ������ ������� ����

�, ���� ��������� �� ����� ���� ���� � ������� �������1

��, ���������� � ��� ������ ���� ���� ��� F ���)� � ���,�

+ ������ ( �� � �� ��� �� �� ���� ���� � F � ��� �� ��� ������ �� �� ����� ��� � � �� ��� � ����� ������� ����������� I���� �� ) 0'.,� "-;="-0�"'-J2 &������

#�� #�� � � � � #���

��

Page 154: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � :

�� ��� ���6����� ������ � ��� ����������� � ��� � � � � � � �� � ��� ���� + ��6���� (� ���� � F �� ��� � F �� G � � �G ��� �� � �� ��� �� ������� � ������

R� F #�.�� � � � � .#�.

�� )��,

�� ����� � ���������� �� .� �. � ..� �..1 ��� ��� ���� ��� F � ! ������ D���� ��������� �� � ��� �� ������ � ���������� � ��� ��#�����

R�� R� � R�� � � � � )R��� � R���, )��,

�� ���6�����1 ��� ���� ��� � �� � �������� � ��� ������������?� ����� �� ��� ����������� � �.� .� .� � � !� �������� �� ���� ��� ��

! ...� ! . ..� ! ... � ! .. .� !.. .� !.. . � !... � !. .. � !. . .� !. ..�.! ..� .! .. � .! . .� .!. .� .!. . � .!.. � ...! � ..!. � ..! . � ..! .�.. ! .� .. !. � .. .! � ... ! � . ..! � . .!. � . .! .� . !. .� . !.. � . ! ..� .! ..� .!. .� .!.. � ...! � ..!. � ..! .� !.. .� !... � !. ..� ! ...� !...� .!..� ...!� ..!.� .. !.� .. .!� ... !� . ..!� . .!.� . !..�. !..� . ..!� . .!.� . . !.� . . .!� . .. !� ... !� .. . !� .. .!� .. !.�

(,�!��� �������� E�� ���� � �� ���� � � � ���6����� ������� ��� ���������� � ��������� ���� � ���������� ���� ��� ���� ��� ������ � �� . .<

H�� ����� �� ���� ����� ������� ����� � ���� ������ ?� ����� �� ��������� �� '�!� �!=)�, ���� ���� �� �� ��� �� ������� � ��� ����������� �� � � !� !� ���� ��/����� �����������1 ���� ���� �� �� ����� ������ � )!� !,6������������� �� ���� �� ������� � ��������� �������� �� �� � ����� �� *2

������ ,� ��� ����� ��� � �� )�� �,����� ���� ����� � � � �� �� �% ����� ������� ���� . . �� ������� �� �� ��� �� � � � � � � �� �� ���

%����& (������ � ����������� � ��� �� ����� �� � .� � � �� E� ����� ��������� :� �!= - ���� ��� ����� ,� � ���� ����������� ������ � ����������� ��� �������� � -� �� ��� -6����� ���������

�G �

��

F����

�����

) G - G � � �G -���,� ��

���

) G - G � � �G -���,� )��,

9��� ��/����� ���������� ������� ��� ����� � ��������� �� � � �� � �������������� ������ �� ������ � �� � � ���������� � �� � � ��� ��������������� �� ��� ����� � ���������� N�� ������ �� ��� �� �� �

�����

���

F,� �,� G,� � � � � ���� �� . � � � %�� ������� *0 ����� �����

�G �

���

F��)�G �,�!�

���!�

�I�� �� ����J� )��,

��� ���� #������� ������� �� ��� � � � � � � �� �� ����(������ �� ����� ������� �� ���� ���� � � � � � � ��� ���� ���

��� �� �� ������ � � �� ������� �� �� ���� ��� ��� �������� ���� ������ � F � F "� ���� ���� �� �� �������� � ��K���� �� ������1 ��� ������������� � ����� ��

! .���" .���* .���: .���:!.���:! ���:" ���:"!���*"!���*" ���*! ���"! ���"!.���*!.���*".���:".���:*.���:* ���:*!���:*" )��,

��

Page 155: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

- � ���� ���� ��� ����� ����� '�!� �"

)��� ������� : ,� &���� ������ ���� ���������� @��� ������ ����� �� ���� ����� ���� � ������ ��� ������ � ��� �� ���� ����� � 9����� @��������� 8��� I&��� �� ) 0;*,� 0=!0J� ����� ������ ����� �� ���������� ��������� ��������� ���� ������� ���������� S�������� �� ������� ���� ���� ����� ������������ �� ������� � ���� � �� ������� �� � ���� ������� �� ��� ����� ���� ������� � �������� 3���� ����������� �������� ���������� ��� ��� ����� �� �� � ������� ����������

�� ������� ����� �� ���� ���� ���� ��� ����� � )�� �,6������������ ������ ���� ���������� �������� ���� � ����� �� � ���� ������� ������������ ���� � ����� �� ��� � � ����� ����� ������� � ?��� !- � ������� ���������� ������� ���� �� ���� �� � �� ��� ���� � F � F :� ����

���

�F !:!

������������ ����� M����������� ��� )+ ������ M,� ��� ��� ����6��� $������ )+ ������ 8,� ��� ����������� ������ $ � )��,� ��� (������ ���6����� ������ )+ ������ (, �� ����� �� ���� )�,� )�,� )�,� ��� )�, � ���� ��������� 3�� )�, ����� ��� ���6����� ������ ���� �� �� � ��� �� ���������� ������ � ��� � ��� ����� �� ��� �� ��� )��� ������� "*,� ��� � ��� ), �� �������� ������ � 9����� @������ ��� 8���� ?��� �� ?��� !-)�, �� � ������ ����������� �� �������� � �� ���� �� + ������ '�!� �!9 )��� ������� ::,�

("���������� �! �+������� � �� ������ ��� ���� ������������ ���� ������� ������������ ���� ?� ����� �� ������� ��� �� ����� � � � � � .� .� .� !� !� !������ ���������� � ���� ���� �������� �� � �� �� � ��� ���� ���� �� ��������� ��� ��� ������ ���� �� "' ���� �� ������ ��� �� � �� ���� ����1 �� ����������� ��� )��� ���������� �� ���� �����������, ���� ��

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

���� ��� ����� ���� ��� ��� ����� �������� ��� �� �� ��� �� ������ E�� �� ���� ��� ����������� ��������� � �� ����� ������������ ��� �� ������ �� ������ �� ���������� ����������� ��� ����

P���� %���� � ������� �� ��� ��� ��%��� ��� ) ' ",� 0= !"� ���� ����� ����� ��� ����� � ���� ������������ �� ������ �� ��� �������� � -

�� ) G - G -�,) G - G -� G -�,�) G - G -� G -� G -�,� ������� ��� ������������ ���� �� ���������� ������� �� ��� � ������ � �� ������� �� ��� ���� � ���� ��� � ��� ��� �� ������ �

) G � G ��,) G ! G !! G !!!,) G . G .. G ...,) G G G G ,�

N� ����� ������������ �� � �� �#���� ��� �� ������� ���!� ��� � ���� ��� ������������ �� ����� ��� ��������� ���� �� �������� ?� ����� �� ��� "'�� �������������� ����� �� )��, �������� �� "' �� ������ �

: F !� G !� G !� G !�� . � !� � !� . � !�� !� � "� . � !� � *�

���� � : F .G.G G* F .G.G!G" F .G.G"G! F .G G.G* F � � � F !G"G.G.�

��

Page 156: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � '

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

�' ����������2�' ��#�#������2' ������ �2�' �����������2�' �������������2�' ������2�' ��������������

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

��

Page 157: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

; � ���� ���� ��� ����� ����� '�!� �"

%������ ������������� �� ���� �� ������ ����� � ���������� ����� � ������� � ���� ��������� �� ����������� +�� � � ����� ����������� �������6����� ��� �� �������� ���� $�� ��� ����� �� �� �� �� ����������� ����9������� :0=-! ��� �� ���� � ��� ����� ����� ���� ����

(-� �.�� &��� � ������������ ����� �#���� � �� ������������ ?� ����� ��� ��� � !6������������ )���� � � ��� � ����, �� �������� � � ����� ��� � ��� ��6������������ � ����� � �� �� �� � ����� ��������� � ��� ������� � ������� �� ������ �� ������� � ���� �� �� ���� �� ���� �� �� ����� �� �� �� �� � � ���� ��� �� ����� �� � G �� �� � )� � ,6���������� ����� ������� ��� ���� )�� ,6���������� ���� �� 5���� ����7 ����� ������� ���� ��������������� �� ������� ��� ��������� 8�������� ���� ����� ���� ���� ����� ������������ ���� �������� �������� � ���� �� ����������� ����������

� # �� ��� �6����������� �� � � � ����� ��� ����� /# �� ��� ��� � � ���)� � ,6� ����� ������� ���� � � � ����� � � � � �� � � � ����� �� � � � ����� ?� ����� ��/:" . F �" .� : .� :".� :" �� E� ��� � �� ������� � �6����������� �� � �������� ��� � � � ��� �� ����� ���� /# �� ��� ��� � � ������ �������� �� �����6��� � �� � .2 / . . F �.. . � ... � . .. � . . .�� � ' �� ��� ��� ��6������������� �� ����� ��� ������

/' F � /# � # � ' � )��,

�� �� ��� ��� � � )� � ,6������������ �� ��� ������� � ��� ������� ?������ �� //:" . F � .� ".� " � :.� : � :"��

����� ���������� ��� � � �� �� ������������ ���� ����������� ���� � ���� ��������������2 /:"". F �"".� :".� :""� ��� //:"". F �".� ""� :.� :"�� ������� � ���� ' �� � ��� � �6� ����� �� ������� /' �� � ��� � )� � ,6� ������� ������� L������ ������� ���� /' ���� ��� ������� � ������ ���� �

��� �!!�� �����/# ���� ������ �� � ������� 0 �� ������ ���� � �� ���

�� ���� �� �6������������ �� )�G ,6������������2/# F �1 � 0 � # � /1 �� � # � 0 1 )��,/' F �

/# � # � ' �� � ' � 0� )��,

�� � ����� �� 0 F �.� � !� "� *� :� -�� �� ����/:" . F �:"! .� :*" .� -:" .�1

�� ��� ���� ����� � 0 F ���.��� � � � � ���-�� �� ����/:" . F �:" ..� :" .�

:"! .� :"" .� :*" .� ::" .� -:" .����� � ����� ��������� �������� ����� ���� ���� ��� �������� �� ��6

���� ������� � ����������� ��� ������� �������� �� �� ��� ��� � ������������ ��� ��2

������ /� �� ' �� ��� �� ������ ���� ��� ���� �� 0 F �.� � � � � � �� �!����

�/'� � �/2��� �� �/'� � �

/3����� )��,

����� 2�� ������ ��� '��� � ���� ���� ����� ��� �� ������� (! � ���

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

Page 158: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � 0

������ 0� �� ' �� ��� � � ��"������� ���� ��� ���� �� ��� "������0 F �� � .�� � � � � � �� � ��! ����

�/'� � �/ 2��� �� �/'� � �

/3����� )��,

����� 2�� ������ ���� ������� ���� ��� � ����� "������� ���� �� � � � ������ � � ����� )�,! �� 3��� ������ ��� � ������� ���� ��� � ������

%��� � ����� ������� �� �����#������ � � ������ ��� � ���� �� ��� ���� ���� ������ C �� ����� � �� �� ��� C���� =C����� ������� ��������� ��� ��������� �� P� %� C���� I� ��� )����* ��� ������+"��� ������ ��8� %� ��� ) 0-",� !: =!';J ��� ���������� �� $� C����� I����� � �� ���������� 0--� ������ �� 9�T�� ��� C������ )+������� 3���� 0-;,� ;'=!.'J1N� 3� &��U��D������ ��� ������� � ������ �� �� � ���6�� 6����� ��� ������������ ������ ��� ��� I (� ," ������ -������ ���� �� ) 0:0,� '= ;J������� N ���� ���� �� ?� &� N���� ��� ���� ���� �� �� I-��� (���� ��� ��� )!, �� ) 0!',� :" =:::J�

%��� ������ )��, ��� )��,� ���� ���� � � ��� ��� �� ���� ����� ��� ������� E� ���� �� ������ M ���� ��� ��� � ������������ ������� ��+ ������ M �� ����� ���� ������ �� � � � ����� ����

� F����

�G � � �G

���!

�G���

�� �� � � � �� �� � .

�� ��� �����6� ����������� ������������ � � � &�������� ���� ��������������� ��� ���� � ���D�� ����� ������� �� ��� �� �#�� �� � � 1 ���� ���������� D���� ��� ����

� F����

�G�������

�G � � �G

���"

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

L�� ��� �������

������������� �� � � � �� �� ��� �6������������ � �.� � � � � ��� �1

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

���

��� ����� �� ����� �� F �� ��� ���� � � � �� �� � )�� ,6�����������

� �.� � � � � ����� �1 ��� �� ��� ?� ����� �� � � F : ��� � F��

�G� �

�G���

�� ���

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

2� F �*"! .� � � � � ;'-:*� � �0"! .� � � � � 0-:*"� � �0'! .� � � � � 0'"! �� )��,

��� ������ � ���� ��� 2� ��� ������� �� ���� �� ���������2 �� ��

/2� F �"! .� � � � � ;'-:� � �0! .� � � � � 0-:*� � �0' .� � � � � 0'"!�� )��,

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

�G� �

�G���

������������� �� ����������� ��� ���� � F *�

�� ���� ����� � �� ����� C���� �� ������� 4� �� ��� ��� �

4�� F�����

�G������� !

�G � � �G

���" �

�)��,

���� � ��� ��� ���#�� ������������ )��,� �� ����

/2�� F 2�������� � )��,

Page 159: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!. � ���� ���� ��� ����� ����� '�!� �"

������ C �� � ��� � ����� �� ���� � ���� ���� � �� ��� ����� ���������� �� ���� �

* *

"

�G� ..0

!

�F *'.�'..�"..

����� ��� ���� ��� �� ���� *'.�'..�".. ���� � ������� �*� "� �� ���� *��� "�������*� ��� ����� �� ���� ...... F

������

�G������

��� ������� '� ��� ��� �����

2��������� �� ������������

�G������

������ ��1 ��� � ���� ��� ���� ��� ����

��� � �������� � ���� �� ���� 4�*'.'..". F������

�G������

�G���

�F .....

����� �� ���� �������C���� ������ ��� ��������� �������

5�� F����G

�G������

�G � � �G

���" G

�)��,

�� ��� ���� #�������� ���� �� ����� ��� 4 ��� 5 �������� �� � ���� �� ������������ �� ����� �� ������� ' 2

6 G� F��G �

���� ��� 4�6 G 5�� F

��G �

�G

�� � �� .� )��,

������ �� ������ N� ��� ��D�� � / 2�� ���/3��� ��� ��� �� ��

�/ 2��� F 7�� ��� �/3���� F � G 4�� )��,

)��� ������� ;.,� ���� ��� ������� 7� ��������

7�� F��� �

��

�G����� �

�� !

�G � � �G

��� �

" �

�)��,

���� � ��� ��� ����������� ������������ )��,���� � " ����� ��� ����� �������� 4�� � 5�� � ��� 7�� ������ � ���

�� ��� � � ��� � � E��� � ��� � �� ���� ���� ��� �� �� ������������� ���� � � ������ � ������� 8)�, ��������� �� ���/� ������ �� 0."1 ���?��� !' ��� �������� ; =;*�

������� C ��� N �� ��� ���� � � ���� ��� ����� ������ � ��������������� ��������� �� B�6M�� E��� ��� 3��� E��� I���� &� ������� � ���

�� ) 0'',� ::=:0J� ����� �� ��� ��� ������ �� ������������ (������ ���� ����� �)���� ���� ���� � ),�� � � � �,�, ����� � ������ �� ������ ������� F )��� � � � � ��, ���� . � �� � ,�� � � � � . � �� � ,�� E� ����� ��� ��� �����K����� � ��� ���� ������ � ��� 9 �� �� 9#�� *�"�!=)�, ��� *�"�!=)�,2

�G 9 F�)�� G 9�, ���,�� � � � � )�� G 9�, ���,�

�� )��,

�� 9 F�)�� � 9�, ���,�� � � � � )�� � 9�, ���,�

�� )��,

E� � �� ����� ��� ��6�� �� ��� ����� �� ���� ������ �� ������ ���� � � 9 ���� �� � �

:� � :9 � ):� F :9 ��� � � 9 ������������ �,1 )��,

���� �� ���� � :)��� � � � � ��, F �� G � � �G ��� ?� ����� �� ���� ,� F ,� F !��� ,� F "� ��� ! ������ ������ �� ���� ��� ��

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

��

Page 160: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � !

� �� �

�������� � �� ���������������� ���� � 4 5 �� 7

/ � ) � . - , * � 3 4 )� )) )� ). )- ), )* )� )3 )4 ��

�� / � ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )�� / � � . . - - - , , , , * * * * * � � � � ��� / � . , * * 3 4 4 )� )� )� )� ). ). )- )- )- ), ), ), ),�� / � - � 4 )� )� ). ), )* )* )3 )4 )4 �� �� �� �. �, �* �* �3�� / � , 4 )� )- ), ), )4 �� �- �, �, �3 .� .) .) .. .- .- ., .,

�� / � � ) . * )� ), �) �3 .* -, ,, ** �3 4) )�,)��).*),.)�))4��� / � � � ) ) � - - , � )� )� )) ). )* �� �� �) �. �* .��� / � � � � ) ) ) � � . , , , * * � 4 4 )� )� ),�� / � � � � � ) ) ) ) � � � . . - * * * * � ��� / � � � � � � ) ) ) ) ) � � � � . . . - - ,

�� / � ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )�� / � ) � � . . . - - - - , , , , , * * * * *�� / � ) � . . - , , * * * � 3 3 4 4 4 )� )� )� )��� / � ) � . - - , * � � 3 4 4 )� )� )� )) )� ). ). )-�� / � ) � . - , , * � 3 4 4 )� )) )� )� ). )- )- ), ),

!

��

"#

$

!���

� ���

�����

���

�%���

� ��

� !

�&�

"&�

"&#

! "&# "&�

����

�&# "

���� ��� ����������� � 5� ���� � ���� ���� ��� 6����� � ����� &6������ �#� �� ��� ��������� ����� �� ��� ���� � �� �� � � ������� �4�'

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

� F ),� � � ��� � � � �,� � � ��,� )��,

L����� ���� � � 9 �� �� � ��� �� � � � � 9� ������ �� ����

���)�, G ���)�, F � � � ���� � F ,� � � �,�� )��,

� ���)�, ������� ��� ����� � ������ ���� ������ � �� ���� ����

E� �� ��� �� ���������� �� �� ��� ������ 5������7 ��� �� ���� ��� ��������� ��� � � � � ���� �� ��������� ���� ���� ���� �� ���� � F ..! �� )��,� ���� F ����� �� ����� � L����� ����

�� F .. � � � ..� �� F . . � � � ..� � � � � �� F ... � � � . 1 )��,

��

Page 161: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!! � ���� ���� ��� ����� ����� '�!� �"

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

;� F ���� ��� � � � � ����� )��,

���������� � ��� ��� ��� � ������ �� �� �� � ������� ��� ��� �� ��� ������ ���� � F �G �� ����

< F ���� ��� � � � � ��� F �... � � � ..� .. � � � ..� . . � � � ..� � � � � ... � � � . �� )��,

+�� ��� � ������ % ��� � !���� %�� � ���� %� ��� � ���� %�� �������� ��� � ��

%� F �� � ;� � � � % � �� �� � % � � � � � �� �� � % �1 )��,

%Æ F �� � ;� � � � % ��� �G �� � % ��� � � � ��� �G �� � % �1 )��,

%� F �� � ;� � � �� % �� )��,

E� ��� � �� ����� ��� ����� � % � ������� �� ������

%� F % G<� )��,

���� % G & ������� ��G 9 � � � % ��� 9 � & �� ( �� �

%� � & � ��� �� � � % � & � )��,

����� ������� ��� �� � ������� �� ��� ���6���������� ���� ,� F *� ,� F -��� ��� ���6�6 ��� ����� ������ ����������

��

� ���� �

���

��� �

Æ

� �

� �

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

���

�� �� �

ÆÆ ÆÆ Æ

ÆÆ

Æ

� �

1 )��,

% %Æ ��� %� %� %�Æ ��� %��

��� % �������� � ������ ����� � � Æ� %Æ �������� /��� ��� Æ�� ��� %�

�������� � �� � �� �� � �� Æ�� L����� ���� � �� ����� ��� ������ � %�Æ

��� %�� �� ;.Æ� �� ������ ��� ������ � %Æ ��� %�� ��� ���� )�� Æ� �� ,��������� � ������� �� )�� � �� Æ,1 ��� �� ��� ��� ����������

%Æ F %���� %� F %�Æ� )��,

�� � �� ����� )��� ������� ;:,�L�� �� �� ���� �� ����� ��� ������ � E��� ��� E���2

������1� (�� % �� �� ��� � � ����� �� ��� �������� ��"� � ),�� � � � �,�,!����� ,� � � � � � ,�� ���� �%�� � �;��� �� �%

� � �;���

�� ���� ����� ��� ������� ���� ;� ���� ��� ��� ��� ����� ��� ����� ��������� � � 6����� ����� E� �� ���� ���� ��� � �� � ����� � ����� ���������� ���� �� ?� E� P� E���� � �� ���� ������ N I-��� (��� � ��� ���)!, �2 ) 0!;,� *" =*"'J� ��� ��� ���� �� �� ���� ���� ��� ����� ��� ��� ���� ������� ���� �� �������2

��

Page 162: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � !"

���� -� ����� �� �"������ # �� 1 �"�� �� � ;�� F ;�� �� ;� F ;�� �

%����& E� ��� ������ ���� � .� M�� ! �� ������� ���� � � ;�� � ��� ��

#� F ! G 1 �� ���� ���� ���� �� � ;�� � . � � � !� &������ �� F � F)��� � � � � ��, ��� � F 9 F )9�� � � � � 9�,� ��� �� � �� ��� ����� �������� ������ .� &���� 9 � ;�� � ���� �� � �������� � ���� ���� 9� �� � ;� � �� ����� ������ ���� �� �� � 9 � �� � ��� ������� ;' ���� �����

��� ������ ��� � ��� �� )��,� ���� 1� F � � #)� � �,� �������;�� F ;��� �

������ E �� ������� � ��� ���� � F � �� �� ������ �� ��������� ������ ��� ���� ����� �� �� ����������� ��� ���� ���� �� �� ���!�� ��� �������� % �� ��� ��� ��������� ��������� �� ����������� �� ���� ���/���� ����

%�), F �� � % � �� F � )��,

� . � � ,� ��� �� ����� ���� %�), ��

% ��), F � )��� � � � � ����� � ��� � � � � ����, � )��� � � � � ����, � ;����� �� )��,

� ��� ���� ��� ���� ����� � � ������� ��� ���� ; ���� �� )��, �� ������� ����� )� � ,6���������� ���� � ),�� � � � �,����,���� � � � �,�,� L����� ���� ������ )��� � � � � ����� � ����� � � � � ��, � )9�� � � � � 9���� � 9���� � � � � 9�, � ��� �� �� )��� � � � � ����� ����� � � � � ��, � )9�� � � � � 9���� 9���� � � � � 9�,1 ������ %

��), F

%�), � ��� �� � � ��� )� � ,6���������� ������ )��� � � � � ����� ����� � � � � ��,���� )��� � � � � ����� � ����� � � � � ��, � % �� �� ��� �� ������ � ���� ��/��������� ��� )�� ,6���������� ����� E� ��

�% F % ��)., �%

��) , � � � � �%

��),� � , )��,

�� ��� ���������� � % �� �������� �� 9������ ;0 ����� ��� ����� ��� �������������� ���� ��� ������� ��� ��D� � ��� �����2

�%�� � �) �%,��� � � � � �� )��,

?�������� � ���������� ������� %� �� �� ���� ���� � ��� � ������ �� ����� ������ � ��� ���� ������ �� ���� �� � ���� ������ E � ���� %���� �� ���� � ���������� ������ % F �% � � ��

(������� � ����� �� ��� ���� � F !� + ���� � ��������� ��� �� ������������� ��� � ������ ����� �� ��� �� � ���� ��� ��� ��� ������ � ������ ����� �� ��

� � � �� � �����

� �

� � � �� � �� ���

� � � �� � �� �� �

� �

� � � �� � �� � ��

� �

� � � �� � � �� ��

� �

1

��� �������� � ����� �� �������� ��� ��� ��� ��� ��� ������ 9������ 0.���� ���� ��� ��� � ������ E �� ��� �����������

��

Page 163: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!* � ���� ���� ��� ����� ����� '�!� �"

E��� � !� ������� � F )��� � � � � ��, � % ��� �� .� ��� ��������� �% F % ��� ��� ����� � . � = � � ��� = F � F �� �� ���� � G �� � �� � %�+�� ���� ���� ��� � ���� �� ��� � � �� � �� ���� � G �� � �� � % �������. � = � �� (����#���� �

%�), G <�)., � %�)� , G �� � . � � ,� )��,

���� , F ,� ��� <�)., �� � � ��� ����������� � ��� ��� ���� � � � � ������M�� %�), ���� � � ������� �� ���� � F �%� F �� G �� G � � � G �����

��� �� & F %�� ����

&�), F�%�

�)� , ���,

�G ��

���%�), G<�).,

��� ������� �� �� ����������� ��� )��, �� � �� ����

���� � 1���� � ���� � � � � � �� � 1�� � �� � #���

���� # ��� 1 �� �� ���������� ������ �� � ������

�& � F �&�).,�G �&�) ,�G �&�)!,�G � � �G �&�),� ,�

F #�� G�� G�� G � � �G���� F #�� G� ������

��� ��� � ������ E ��� ��� � ������� ���� ������ M�� > F ;� � ���������� �>�),� F6� E� ���� �� ���� ���� �& � � �>��� ���� � ����

#�� G� ����� � #6� G� �6���� )��,

������� ��� �������� � ��� ������� ������� ��� � �� > �� �� �� �� %�E� �� ���� )��, �� ������� ���� ���� �6��� ��� �� �6��

S���� ��� )�� ,6���������� # ��� 1 ��������� �� �� �����

� ���� F ����� �

���� F #� �

���� � � � � ��� F #� �

�� ��� F #� �

�1 )��,

� ��� F ��� �

��� F 1� ��

� � ���� F 1� ��

� � � � � � ������ F 1� ��

���� )��,

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

�� � . � � ,� ��� �� � ��� ����

� � F � �� G�

�� G � � �G� �

��� � � � � �� F � ��� G� ��

� G � � �G� ������ )��,

9������ 0 ����� ���� ��� ������� ��� > �� F ;� �� ��� ����� � � �� � ������ ����

��� ��������� �#�� �� � � ���� 1 ��� �� ��� ��� ��� ������� # ��� 1� ���������� ��� > � F ;� � ������� ��� ����� � � �

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

6��� F �>�),� ,� � �> ��),� ,� F �����

6� F �>�).,� � �> ���).,� F ���

������� > � � > � > �� �� )��,�

L�� �� �� ���� �� ���� ��� � ����� ��� �� ����� �������� ����� ���� ��� ������ ����� � � ��� ����� ������ � ( ������ ��� M�����U�� ������� ��� �� ������ �� ������ I&� ���� ��� � ����� � ) 0-0,� !".=!";J2

��

Page 164: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � !:

"����� "� �� ' �� ��� � � ��"������� ���� ��� ���� �� ��� "������0 F ��� � .� �� � � � � � � �� � ��! ����� �� � �� � � � � � ��! ����

�/'� � �/2��� �� �/'� � �

/3���� )��,

����� 2�� ������ ��� � ������� ���� ��� � ����� "������� ���� �� � � � ����� 0 ! �� 3�� ������ ��� � ������� ���� ��� � ������

%����& N� �������������� � 0 ��� �� ��������� �� ������ �� � � � �� � ��� ����� ),�� � � � �,�,� ���� � F � G ��� ,� F ���� G 1 �� �� �� �� ��� ������ ��������� � �� �� ���� ������������ ������� ����������� ���� ?������ �� � 0 F �.� .� .� � � !� "�� ��� "6�� �������������� ��

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

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

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

M�� �� �� ��� ������ � ��� ���� ���� ���� ������ �� G � � �G�� F �� �������� � ���� � ��� ' � �6�� �������������� �� � ������ � ��� ?�������4��� ���� �� ��� ���� �����4��� ����� � �� � �� � � � � � ���� �' ��

)�� � �� � � � � � ���� �',� F ��

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

��� � '�

F �� � �� � � � � � �� �/'� )��,

���� ��� ���� ������/' �� ���� � )�� � �� � � � � � ���� � ',

� � ����� ��������� E �� � �� ���� �'� F � ��� ��� �

/'� � �

/);��� � ��,�� ����

6 F ��� � � � � � ������ @����� �� ��� ��������� � ���� ���� ;��� � ���������� � ��� ������������ � ����� � �6�� ��������������� ���� � 3���

��� ��� ���� �/'� � �/2��� � ��� �� ���� ���������� )��� ���6���� 0",�

���������

�� 7��� 8 0������ ��� 9���:� � �� &�' ����� ��� ���� ���� � � � � ��� � ��� � � � � �� )�������� ��; ��� � � ������� ���� � � � � ��� � �� � �� � � � �� � �� ����� 7�� 8 "��� ���� �� �� ))� ). ���� �������� � ��� ��� ������ &��'<

� � 7�� 8 &=� =� >������� )4*3�' ��� ���� ��� �������� ��? � � �?��?�� � � ���� ? ) ��������#� ����� �� �� ��������� �� ���������� ���� �� � ������ ���������������

� 7�� 8 ��� ���� �#��� ������� �� � � � �� � � ��� �?) ��������#� ����� ��������� � � ������� �� � � � �� � � ��� �? ) ��������#� ������ "��� ��������������� � )���-�����)�)� ���� ���� ����������<

� �� 7�� 8 "��� �� � �� ��� � �������� ��� � ��� ������� �� ���� � ��� �������������� � ���; �������<�' � � �� ���� � ���� ���� � � � � � �� �� ���� � �� ���

�' � �� ���� � � � �� �� �� ����� � � ����� � �? ��

�� 7��� 8 @� ���� �� ��� ���� � ������� 6 ��������<

��

Page 165: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!- � ���� ���� ��� ����� ����� '�!� �"

�� 7�� 8 A����� �� �������� ���� � �� ��� �� ��� B� ��C ��������� �� � � � ���� ������� �� ���������� ���� &��� &�' ��� 6���� )'� D��� ������� 6� � � ���������� �� �#�� ��� ����� ����������� ��� ��������� ���������

�� 7��� 8 A����� �� �������� ���� ��������� ��� &�� �'���������� ���� � � � ������������������ �� ��������� ���� 6�� ���� � ����� ���� �� �� �� �)

���

�,� ��� ����

���� �� � ��

� 7��� 8 "��� ��� &�� �'���������� ���� � � � ���� ��� ������ �� ���������� �������� ��� �� ��� ���� � ���� � ��� ������ ������� ��E���� �������� >� ���������� / �, ��� �� ����� ��� �������#���

� ? � ? � ? - ? � ? � ? - ? � ? � ? * ? � ? � ? - ? � ? � ? - ? � ? � ? � / ,�

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

�' ��� ���� �� / ���&�� �' ? ����� ? ����� ���� �� � �2 �� / � ���� �� / ��

�' F�#� ���� �� � ������

��

� ��� 7�� 8 6�� B"��� ������C � �������� �� ������������ � �������� �� ���� ��� ������ D��� � ������ & ' ����� ��� $������ D��� � ������ &$' ���� �� ����� ��� ������ ��� ���� � � ������ "��� �� � �� ��� � ���� ��� ������� ������� � $ � $$ � � � � � $$$$< "��� �� � ������ ��� � ������ ��� ��#��������� � ���� �������<

��� 7�� 8 "��� � ��� ������� �� ������� )� ���� ��� ���� � ���� ��� )4���<"��� � ���� ��#�� ����< 7� ��� "��� ������ ���� ��� ������ � �� � ������������8

��� 7���� 8 ��� � � ����� #���� ���� �� ���� ���� ������� �� � � �� ������ � ��� ���� ������' F�#� ���� �#��� � � � ������ �� ��������� �� ��� ������� �� ��� �� ������������� �� ��� ��� ����� � � � � � ���� � � ��� � � � � �� )� ����� ��� #������� � � � � �� ��� � B������ �����C ���� ��� ������� �������1 6���� �� � ���������� �� � � � ���� � ��� )� � � � � � � )� � � ����� �� �� �� ��� ������ #��������� � � � ������� �� ��#�

���� / 7�/ 8 �� ) �� �2 ��� / � �� � ! � ��� ) ��

>� �������� ��� ������ ����� ���� � / 4� � / -� ��� �������� / �*-) ��#� ���������� ���

�� / � � � � � � � ) ���� / � � � � ) � � � ���� / � � ) � � � � � ���� / � ) � � � � � � �2

����� ��� �� ���� � ������ ��� ����� ��������� �� �� ���G� )�� ��� ��� � �������%��� � ������ ������ "� ��� � ��� �������� � � �

�' @� ���� ������������ ����� ��� ������� ���� ����� #����<' A����� �� �������� � �������� ��� ������ ����� &��� � � � � ��' � �������� ��

� ��� D�� ��� �������� ��������� �� � � � �� ������� �������������� �� �� ������� D�

�' "��� �� ��� )�������� ����� #������ �� � � �������� ���� � / 4 ��� � / -<

�� 7�� 8 ������������� �� �� ������� �� � ������ �� ������ �� ��� ������ ���� � ������ ������ ���� � � � �� � � ����

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

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

��

Page 166: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � !'

�� � ����� >� �������� ��� � � � �� / ))��)��)���)) ��� ������ * ��� ������ *� ������� � � � �� / �)�))�))��)��

A����� �� �������� � �������� ��� � � �%� ������� ��#�� �� �� ��� ��

�� 7�� 8 "��� ��� ������ ������� ���� � � � ���� � &�� �'���������� ��� ����������� ���������� ����� �� �������� ���� � ����� ����&�� �' ���� � ��� ��� ���������� � ��� ����� >� �������� �)))�� �� ������ �� )���)) �� 6���� )�6������� �� ���������� ���� ��� � �������� ��� ��������� ���� � �������������� ����� �� #���� ���� �� ��� ���� �����

���� ���#��� ���� ����� �� ���� �� � ��� � �� �� ��� ���������� � ����� � ��#�� �������� �� �&)' ������ �� ��� �������� �� ����������� ��������� �� �� ��� ������ ���� �� �����1 6���� ��� ������ !7�8� � � � � !7�8 ��� �7�8� � � � � �7�8 � � ����!7�7�88 / � �� � � �� �� �� / !7�8 ��� �� / !7����8 �� � � � � �� ���� �� / 7�� ��8�� � � � ��

��� 7��� 8 H�� ��� ��� ���� � �� ��������� �� � � � ���� � �� ��#���� ����������� ���� � ��#� ���� ��� � �

���

�? � � � ? ��

�?���

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

� ��� � �����

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

��� 7��� 8 "��� �� ��� �������� �������� ��������� �� ������� D ���� � ��&�' �< &�' .< &' -< &�' ,< &�' )������<

��� 7���� 8 9�#�� ��� �� ���� �� � �� ��� � �� �� ��� ���������� �������������� &"#'<

� ��� 7�� 8 "��� ������ ���� � �� ��� ���� ��� ������� ���� $� �� ����������� ��B����� ����C ��� B���� �������C ������� �� �� ������� ��.��!,<

� � 7�� 8 ������� � �������� ��� ������� � ��� ������� ���� $� �� ���� �� &""'� �� �� ����� ��� ��� ���� ��� ��� ������ � ��� ���������� ��������1

!!!!

!!!" !!"!

!!""

!"!!

!"!" !""!

!"""

"!!!

"!!" "!"!

"!""

""!!

""!" """!

""""

�� $� ��� ���� ������� �� ���� ���� � ��������� ������� I���� ������� �� ��� ���� ����� ������� ��������� ���� � ������ ������2 � ��� �������� ��� � ��� � � ��))))�)����)���))))))� J � ���� �� ��� �������� ��� � $� �� �������<

��� 7��� 8 >��� ���������� � ����� % ��� & � � ���� ������� > %��� ������7' 8 %&'' �������� ��������� ��� ���� �� �? ) ������ 7' 8&&'' ������

��� 7��� 8 F�#� ��� ����������� �������� ��� &�#'�

��� 7��� 8 "��� �� ��� �������� ��#�#������ �������� #������ �� ������� =���� � �� &�' �< &�' .< &' -< &�' ,< &�' )������<

�� 7��� 8 � ���� �� � ����� ������� = �� ������� � � � ? ) �� ���� =)� ���� � ) �� =. ��� ������� � =�� >��� ��� ���������� ������� ��� � �� ��� ��� �#�����#�� �� "��� ��� ���� ����� �� � ��� � ����� ���� � ��� ��������<

��

Page 167: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

!; � ���� ���� ��� ����� ����� '�!� �"

� �� 7��� 8 &"� @� F����� )4�-�' ����� ��� ��� ���#� � �������� ��� �� �� ��� #�� �� � � ��� �� #���� �� ������� =� ��� ���� ����� � ��� �� ��� ������� �� ����� ��� �������� ������ �� ��������� ���� ��������

��� 7��� 8 D�� �� � � � ���� ��� ��� � � � ������ �� ��� �� ��� ��� ��������� ���������

�� ��� ��#�#������ ������ ������� =� �� ��� ��� / ���� � � � � ��� ��� ��� (�������� �� �� � / ����� � � � � ���� ����� ��#� ���� � � �� �����

� �

������

��

��� 7�� 8 A �������� � ��� ����� ��K���� 9��� ���� ��#� ��������� ������� � �����#�#������ 9��� �� L��� �� �� ������ ��� ��� ��� ���� ���� � � � ���� � � ����&�' ���� ? � � �? �� ? �� / �< &�' ������ � � � � ��� ��� / �� � �� � � )� � � ��<

� ��� 7�� 8 ��� ���� ����� �� � ������ ��� � �������� ��� ��������� � �� ���� ��������� � ��� )� � � � � �� )�� ���� ��� 9����������� ���������� �� ) ��� �)� )��&�� ���� ����� ��� ���� �� �� ������ ������ � ��� �������� ������ �� �������� ������ �� ������� �� �)�' >� ��������

����� ���)� ��))� ��)�� �))�� �)�)� �)��� ))��� )�)�� )��)� )���

�� �� � � ��; ��� ���� � / - ��� � / �� � ��� 6���� � ������� ������

��� 7��� 8 6� � � �����1 ������� � &�� �'���������� ���� � � � ���� �� ������������ �� �� ������ ���� �� ��� ��� �� ��� ���������� ��������� �������� �� � � � ����&�� ��� ��' ��� �� � � � ���� &�� ��� )�' ��� ��� �� ������ �����

� � � 7��� 8 &F� +� ������' 9�#�� � ������ � ��� ������ �� �� ��� � ��� ���� ��� �!�" �� � � ������� � ��� ��� ���� ���� �� ������� �� ��� �� ������ �� �2 ��# �!�" �� � � ������� � ��� ��� ��� ���� �� ������ �� 2 �� ��� ���� �� >��������� ��� ������ � ������� � ��� �� D����� ��� �� =����� ���� �� �����$��� ���� ���� ���� #������

"� ��� ��� ������ � � � � ������ �� ������ �����#�� �� ����� �� ��� ���������1 =����� ��� �������� ���� �� ��� � �� ��� �������� ��� �� �� =����2�������� ������ ��� �������� ��� �� ����� �� ������ ��� %��� ����� �� ���� ����������� � ��� ����� � ��� ��� ���� ��� ���� ������� >� ��������

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

����� ��� ������ �� ) ����� ���� ) �� ��� � ���� � ���' "��� ������� ��#� � ���� &��� �������� � � ����'<�' ��� ����� �� � ��� � ������� ���� �� � �� � � � � � ���� � ��<

' F�#� ���� �� � � ) ���� �) � ��� ����� B�C ����� B������ ��� ��� ������C&6������� �#��� ������ ��� �� ��� �� ����������'

�' ��� ���� �� �� � �� � � � � � �� ��� � �� ��� ������� �� ��� �� � �� ��#���� ����� � �� ��� ���� �������� &6�������� �� �� ��� � ����� ��� � I���� � ���� ���� ����

�����

��'

�' F�#� ���� �#��� ������ � ���� � ����� ��� � I��� ������ � ������ �� ������ � �� � � � � � �&���� '��

�� 7��� 8 6�� ���#� � ������� ��%��� �� ���� � �������� ��� ��������� � � ����� � )�� #�� ��� ������� � �� �� � �� �� ��� �� )� ��� ���� ��� � ����� ������ � ������ � ������ ��; ���� ��%����� �� �� ���������� �� ������ �� �����:���; ��� &�*' � ������ ��� � ���� ������� ���� ���<

�� 7��� 8 @� ���� ������ �������� � &�� �'���������� ��� ������� �� &�' ������������ ���� � � � ����< &�' ���������� ��� �� � � � ����<

Page 168: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � !0

� �� 7��� 8 @� ���� � ��� ������ �������� � &�� �'��������� ������� ���� � � � ����&�' ��#� ��� ��#�#������ �������< &�' ��� ������ �<

� 7���� 8 @� ���� � ��� ������ �������� �� ������� .)&�' ��� �����������<

� 7��� 8 ����� ��� ������� ..� ������� �� � %�� � � ������ ���� ��� �� ������ ������� � ��������� �� ��� ����� ���� ��� � ���� � B��������C ���������� �� ��� � � �� ������I��� ���� � ��� � ��� �� � ������

�� 7��� 8 @� ���� ����� � �����:� ��; ��� �� �� �� �������� ���������<

� �� 7��� 8 F�#� ���� ����� &�+' ������� ��� ������� � � �?) � ���� � �����������

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

� �� 7�$ 8 "��� �������� ��� ��� ���� ��� ������� ������ ����� &�+' �� ��� ���� � &�� �'���������� ���� � � � ���� �� &�' ���������� ����< &�' ��� ��#�#������ ���� � ������� =< &' ��� ������ � ���� � &��'<

�� 7�� 8 A����� � ������ �������� ���� ������� � �� ��� ����� ��; ��� ����

� 7��� 8 "��� � / )� ��� � / )-� �� ���� ��������� ������ ��� ��� ������))��)��)����))))))�))�)�)� �� �����:� ��; ��� ��< &��� &,�'�'

�� 7��� 8 "��� �� ��� �������� �������� �� �����:� ��; ��� ��� ���� � / )���� � / )-<

�� 7��$ 8 ��� ���� ����� �� � ���� ����� �&�'� �&)'� �&�'� � � � � ��� ��������#��������� � � ���� ��� �������� � �����:� ��; ��� �� ��� ������� �� �������������� ����� �����%��� � ? � ���� � ��� �������� �& ' �� � � ���� ���� ��#� ������-)�& ', / �� &6� � ��� ��; ��� M�&�'� � � � � M�&�� � )' ������� �� � ���; ����� ��� ���� �� �� ���� �? � / �� E �� �� 9��� ������ �� %&�'� � � � � %&�� � )' ������ ������ ��#�#������ ��; ���� L���' 0������ �� � �� �� ��� ������ ��������������& ' / & � � � ������'� ��� ��� ������ ������������� / & � � � ������'��

�� 7���% 8 H�� ���������� � ����� � ��� ������� %��.

�'� � �����I� ��� ���� � ������� ��

� 7�� 8 F�#� � �����#�1 �� �&�' ��� �&�' ����� �������#��� ��� � ���� ������������ � � �� ��������� ���� �&�? )' / �&�' ? )�

� � 7��� 8 D�� �&�' � ) ����� ��� ��; ��� ������� ��� �&�' �� �������� ���� ��������� ���� �� / �� ���� �������� �� � � � �� �� &�� � )' � � � &�� � )' �� ������������ ���� ������� ��� ���� �&�'� ) �� �������������� 7�� 8 0����� �������� ��� ��� ��������� ������� �� &,,' � �������� ������������ �� � � � ���� � �����:� ��; ��� �&�' ���� � ���� ���#� ���� ���

� �� 7�� 8 ����� � � ���� ���#� �������� �� ��� � �� ��������� �� � � � ���� ������:� ��; ��� ��� ������ ��� ������� � ��� I��� �� ���� � � � �����

�� 7�� 8 ��������� ��� ����������� � ������ ���� ����� ����� � &,/' ��� &,*'�

�� 7��� 8 � ���� ��� ��� � � � � ��� �� ��� ������� � ��� ���� ������ � ��� � ��������� � )� � � � � � � ��� ����� �� ��N��� ��� ���� �� ��� ���������� � �� ��������� D��)�� � � � � )��� �� ��� ��#�#������ ������� �� &�� �'����������� ����� � / ��� � /��?� � �?� � ���0 /

�����

�� 6��� ��� O� �� ��� ���� �0 �������� ������� �� ��������

���� �� � )� ��� �������� ��� ��#�#������ ��������2 ���� � � ) ������ ��� ������������� �� � ����� ���� ��� �������� � � �� ��� )� �� )� ������#��� ���������� �����>� �������� �� )�� � � � � )��� �� �))�� �)�)� ))��� )��)� ��))� )�)�� ��� �� �� / )��

Page 169: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

". � ���� ���� ��� ����� ����� '�!� �"

���� O� �� �)��� �)��� )���� )���� ��)�� )���� &6�� ��#�#������ ������� ���� ��� �������� ��'

F�#� ���� ��� ���� &,*' ������ ��� ���� ������ � ��� � �� �� � )� � � � � � � ��� ������� ��E���� ���� ������ ��N�� ��� ��� ���� �� ��� ���������� � �� ���������

� 7���� 8 �� � �� � �������#� (�� �� � ����� � � �� ������� ��� ���� �

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

� ���(

��(

���

� ��� 7���� 8 0����� ��� ��� �� � ��� ���#� � ������� � ����!� ��� �! ������ �� ? � � �? ����� � � � � ��

���

��� 7�� 8 >��� ��� @��������� ����� �� ��� ����� ���� #������ ��� ���� ������ ���� �� �� )� )� )� ������� �� ��E���� ������������ "��� � ���� ����� ��� �; �#����� ���� ��� �������� � ������������ �� ���� )� ���G� ���������� ��K����<

��� 7��$ 8 9�������I��� 6����� F� %�� � �������� ��� � ���� ������ ���� ������� ������ � ��� � ������ ��� � �� � � � � � � �� �� �� ��������� �� ��E���� ������������� ������ � ������ �

�� 7�%� 8 &A� @� D������ )4*,�' � ���� ��� ���� ������ � ��� � �� � � � � � � ������ �� ��������� �� � ������ ������ ��� �� & ? �'1� � ���� ��#� �� �#��� ���� � ��#������� ����� � �� �� �� ������� � �������� ���� ��� ���� � ��; ���� ? � � � ��E���� ����������� �� � ���� �� ) � ? � � )� ������ � ) ���� ��� B�� ��C ���� � / ��� ���� ���� � ��� � ��� ���� ����� ��:#�E �� ����< >� �������� � � ������ ��; ��� � � � � � �� ��� 4� ���� ������ ���� �� )� )� �� ��� ����� � /

�����������

���

/ *� �� �.-,.,-.�,�.-,)�-���,)�-���,)�-�

����� � / -,.,�,-�.-,.,,� �� �� ����� ���� ������������ / ��))���

�� 7�%� 8 >� ���� #�� �� � � ��� � �� ��� &�� �'���������� �� ��������� �� ������ ������ �� ����� ���� � �� �� ������� � ��E���� ����������� �� � ����<

��� 7�%� 8 &J � ��� "��������� )43-�' ��� ��� &�� �'���������� ����� � � � ������ ��������� �� ���������� �������� �� ���� ��� ���� �������<

� ��� 7�� 8 &>���� = �����' ��� � ���� ������ � � ��� �� ��� ������� -���� �������� ���� �� ��� �� ��#�� ������� ��� �� %���� �� � ����< 6��� �� ��� ������ ����������� ��� ��������� �� � � � �� � � ���� � � �� � � � � � �� � ��� �� � �� � (������ � / - ��� &�' ( / 3� � / ,� �� �� ������ ��� ��� ����� ���� � � �����������2 &�' ( / ).� � / 33 �� �� ������ ��� ��� ���� �����

��� 7�� 8 ������� ��� ���� ������:� ������ � ������� ,* ���� ��� ��������� ������� ���� ��� ���� ��:� ��#�#� ��E���� ����� &�� ���� ����� ���� � �� ? ) ��� � � )�'��� 7��� 8 �� ����� � ��&�� �� ��� � ��� ���� ������:� ������� �� ���� ��� �����#�� � %���� � �� ��'���� ���<

� � 7�� 8 A����� �� �������� � �������� ��� ������� ��������

� / �� ? � � �? �� ? ��� ����� � �� (� �� � � ����� 7�� 8 ��� ���� ��� � ���� �������� �� �� ��������� �� ������� ��� ��� ��� ����� �� ��� �����

��

Page 170: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � "

� ��� 7��$ 8 ��� ����� ���!� �� �� (�� ������ � ��������#� �������� &���' ��#�����#�� �� � �� �� /

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

��� � ��� � ����� �� ? � � �? �� /

�� ? � � �? ���

�' ��� ���� �� � �������� ������ ��� �; �#����� � � ���� ����������' "��� �� ��� �������������� ������� �������� ����� �� &��� � � � � ��2 ��� � � � � ��'����� ������ ������� ��� ���� ������� ��� ���� � ����� ��� �� � ����� �������� ��� ���� &���� ���� � � � � ���� ���� � � � � ���'<

' "��� �� ��� �������������� ������� �������� ����� �� &��� � � � � ��2 ��� � � � � ��'����� ������ ������� ��� ���� � ������� ��� �� � ���� ��� ���� � ������������ �� ��� ���� &���� ���� � � � � ���� ���� � � � � ���'<

�' "��� �� ��� �������������� �������� �������� ����� �� &��� � � � � ��2 ��� � � � � ��'��� ��� ������� ��� � ������� ������<

�' 0������ �� � �������� ��� �������� ������ �� &��� � � � � ��2 ��� � � � � ��' �� ����������� �����

��� 7�%� 8 ��� ���� ��� �������� ������ �� &��� � � � � ��2 ��� � � � � ��' �� �� ���������� �� ������� ������ � � ������� � ��� ������ �� ��� �����

� �� 7��� 8 ����� � � ������ 9��� �� �� ��� � ��� �������

�������� ���� ��#�

� ������ ��� � ���������� ���� ��� ��� ������������� �� � ��� �) � )�� � � )�>� �������� �� � � ��� ���� � / � / � ��

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

�� 7�%� 8 0� ������ ��� ���� � ���� � ������ 9��� ����� � � � ��� ���� ����� ��� ������������� ������ �� ������� *.� @� ���� � ���� ����� ��� ����<

� ��� 7�� 8 9�#�� � � �� ��� ���� ����� �� � 9��� ���� ��� �� ��� � ��� ����������� &��� � � � � ��' � ������� )�� ������� E �� �� ��� �� ��� ����� >� �������� ��� � ���� ���� � / . ��� � / � ��

��)�)�

� )�)�)�

� )�)))�

� ��)))�

� ��))��

� �)))��

� �)�)��

��� 7%� 8 ������� ��� ����� �%� ������ � ������� ). �� ���� �� / �� 9�#�� ���� ��� �� �� ����� � 9��� �� �� ����� �%� ������ �� ���� ��� ���������� ��#� ������� ��)� )�� � �)� � )��< >� �������� �� ��� ��� � / 4� � / ,� � / *� ����� ��� ��; � ���

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

��� 7��� 8 �� � �� � ����������� ���� �� &�' 2��< &�' 2����<

� ��� 7��� 8 @� ����� �� ��� �������� ��� � ����������� �� ���� �2� � ��<� � 7��� 8 "��� �� ��� ����� � #�� � � �� � � �� �<��� 7��� 8 @� ���� ����; �� �� � ����������� ����� ��#�<

� ��� 7��� 8 ��� ���� �� ��� ��� �������� ���������� ������������� &�*'� ������� �� ���� ��� � %�� ��� �������� ���������� ������������� � ��� ������������ ���� 0 /

�����

�� � �����#�� ������

�� A���#� &/�' �� � ���; ����

��� 7��� 8 & � +� "� @����� )4�*�' D�� �� � ��� � ����������� ��� � � ��� ������������� ��� ������� �� 3 / ��� � � � � �� )� ����� � �? �� ��� ���� �� ��� � ��� ��� ������ ��� �� ��� ����� ���� �� ) �/ � �� ��� � � ��� ) � �� ����� ��� ��� ���� 4��� ��� 4�� ��%��� �� 6����� 5� ����� 0 / �� ��� / ����

��

Page 171: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"! � ���� ���� ��� ����� ����� '�!� �"

�� 7��� 8 "��� ��� � 25�� ��� � 2

4��� �� 6����� 5<

�� 7��� 8 6�� ���������� ���� � &/#' �� �� ������ ��� �������&� � )' ����������������������� � �� � ��� �� 6 � ) ����� �� I��� ���� ���#��� ���� � �����#�������� ��� �� ��� �� �������������� �� �� ���� 6 / � �� &�*'� ��� ��� � ��������� ��� ���� #�� � �� ������ � &/#'� 6�������

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

�� � )

�? ����

� ��? � � �?

��

� ) ? 6 � �

��� ) ��

��� 7��� 8 >��� � ������ ��� �� �� ��& ? )'� �� �

� ��� 7��� 8 F�#� ��� ������� ��������� � ��� � � ����� �� ����� ������ �������������� ���� � ��� ���� 6����� 51

�' ��&0 ? ' ��0 ? �� �

�' ��&0 ? ' ���&��0� ' ? ���� �

� ������

�? � � � ? ���

�?����

�? � � � ? ���

��� �; �� �

�������

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

�?�

������

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

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

��� 7��� 8 ��� ���� 6����� 5 ����� ������ ��� ���; ����� &�' �� ��� ���#� ��������� ��#������� ��� ���; ������� ��� ������ ���; ���� � 6����� 5� � ���

�� ��� � ����������� �� �� ������� / �?��� ����� � / �� � � � 1� ������ 7��� 8 F�#� ���� �� � �� �� ��#� 0 �� �� ��� ��� �� 0 ? ����0 �

� � 7���� 8 &D� D#P��I� )4�4�' 6�� � �������

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

�� � �������� ��� �� ) � �2 ���� �� �� ��%��

�� /

�� )�� �� /

���� � �� )�

F�#� ���� �� �� �� ��� �������� � ) ��� �� � ��� 0; ����� ���� ���� ��� �� ��������

� ��� 7��$ 8 ��� ���� ��� ����� � ����� ��I�� �� 6����� Q ��� ��#�� �� &/,'�

��� 7���� 8 6�� 6����� � ���� � >��� �� �� ��%��� �� � � ) �� ��� ��� ��

7&�' /��� �

� �

��&�' ���

����� ��&�' / &�)'����� �� ��� =�������� � ���� � 0;� ����)�)!&�/'��' F�#� ���� 7&�' �� ���� � �� ��� �����#�� 7� � � )8� � � ��� ����#���#� ��� ������� �� ��� �����

�' ��� ���� 7&�' �� ��� ��� ���� � � ���� ���� �����%��

7& ���' / 7&)� �

��' / �

��? �

�7&�' �� � � )�

' "��� �� ��� �������� #�� � � 7&8' ���� 8 �� �����<

�' F�#� ���� 7&�' �� ������� ���� � �� ��������

�' >��� ��� ��� � ��� �; ���� 7&�' / )1��

�' >��� ��� ��� � ��� �; ���� 7&�' / �������� 7&�'�

��� 7��%� 8 A�������� ��� ��� 9 � ��� ������� � ����� � � � ���� ��� �; ����7&�' / � ��� � ������ ���� �� ����� �� 7&�' �� ������� ��� � �� ���������� �� ���� � ���� 7&�' � 9<

��

Page 172: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � ""

�� 7���$ 8 �� $ /������

�� ��#� ��� �������� ��� ��

�� � /$

7

$

�?�

&�� �'�

���� � $ �

�� 7���� 8 =����� ��� � ����� �� ��� �� � ��� 6����� � ���� 7&�'�

��� 7��� 8 F�#� ��� ��� � ������G�� � ������ :� / :�

��� 7��� 8 6� � � �����1 &�' : � ; Æ �� ��� ��� �� ; � :Æ2 &�' :Æ�Æ / :Æ2&' �0 �� ��� ��� �� 0 ) �

��� 7��� 8 0������ ��� ��� ���� �� ��� �� �� �������� ��� ��� � D���� ��

��� 7�� 8 ��� �� ��� � ��� ) � ����� �� ��� �� �� . �� � &/+'�� � 7��� 8 F�#� ��� ���� �������� ������ &��'�

�� 7��% 8 F�#� 6����� " �� ������������� �� ��� $ &!�('� ! (�

�� 7��� 8 D�� � / �� � � � ���� �� ��� �� ������� � ��� �� � $ &(�� � � � �(���'� ������ < �� ��� ��� � ��� �������� � $ &(�� � � � �(����(' ���� ��� � �� � � � ����&(�)'�� ��� ����� �� � �������� � < ��#� %��� ������ �� �� � � � (� ��#����� ��� / ��� ��� / � � �� ) � � (� ����� � �� ��� ������ � ���� ���������� ���� �� $ &(�� � � � �(���'�

�� 7��� 8 &�' >��� �� �� ���� ��� �� ��� � 6����� " �� ����� ���� ������������� (�� (�� � � � � (� ��#� �� ���� ����� ��� ����������� ����� &�' "������� ��� ��� � ���� ������ �� ��� ��������� ���� (� (� � � � (�<

� 7��� 8 ��� ���� ��� 2 ���� � ������� � ����� ��� ���2����� � ��� 6��

��������� � ��� � ������������ &+�' ���� ������ � 3 ��� .�))� .�)�� .����.))�� .)��� .���� �))�� .)��� ����� )����

� 7�� 8 0������ ��� 6������ 5 ��� Q ���� ��� ������� ��

� �� 7��� 8 �� < �� �� ��%���� ��; ��� &��� ��� ��� � � � ' � �����#� ��������� ��� <&�'

�/ 7'�8

����� �

&) ? ' ? � � �? '�� '2

�� ������

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

���

��� �� / �� / �� / � � � / )�

9�������I��� ��� ���������� � ���� ������� ��� ���� �#��� ��������#� �������� ��� � ��; � �������������

/ <&��'

�? <&����'

�� )�? � � �?

<&��'

)

������ �� ���� � � � �� � ��� ���� ����� � � � � ��� � ��� � �� �� � )� �� � �� � � � �� H������ ������������� � ��#� � ������ ��� �� �� ��� � ����� �25�� �� ������� ��

� �� 7��� 8 6�� ���� �������� ���� ��� #������ � � �#�� �������� �� �� ����� ���� �������� � ���� ��� � ��� ���� ��� ���������� �� �������� ��� ��� � ������������� ������ ��� ������ � ��� ��� �������� �� ����� � � ��! �! ���!�(2 �� � �� ���������� ����� �� ��� ��� �� � � ) ��� ) � ������� ���� � � � �� ��� ��� �� �� �� ���� ����� ���� ������ � ��� ��� ����

6�� � )� ���� � � ��������� ����� � � #������ �� & �� �� � � � � �' ���� ������ ������ � ��������� � ��I� ���' "��� ��� ��� ��I� #���� � ��� %#� ��� ��� ����� &��� ����������� ��� ��������� ���������� ��� ��������'� ���� ����� #������ ��� �������� �������<

��

Page 173: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"* � ���� ���� ��� ����� ����� '�!� �"

�' ����� � � ��������� ����� ���� ��I� #��� &)� -� ,� �� �'�' >��� � �������� ��� � ���� ������ ���� � ��#�� ��I� #��� & �� �� � � � � �'�� ���������

�' F�#� ���� & �� � � � � �' �� �������� �� ��� ��� ��� B� ��C #��� & �� � � � � �' ����������� ����� �� ��%�� � /

���

�� �����' D��� ��� �������� ��I� #���� & �� �� �� �� �' ��� ����� � ���� "��� � ������� ������ ��<

�� 7�� 8 ����� ��� ������� 4*� %�� �� ����� ��� � �� ��� � ���� � ����������I� #���� & �� �� � � � � �' ���� � )��� �� 7��� 8 !���� �� � ��� � ��������� ���� ��� ����������� �� ��� ��������� � � ) ��� �� ) � ������� � / )� 6�� ��I� #��� � � � ���� �� ��%��� �� ��������� 4*�

�' >��� � �������� ��� � ���� ������ ���� &0��0�� � � � �0�' �� ��� ��I� #���� � � �����

�' D��� ��� � � ��I� #���� �� ��� ��� � / -�

� � 7��� 8 &�������� ��� D������R��' D�� �� � B��������� � ���������C � ��� �� �� ������� � ��� � ������ 3 �� ������� � ���� ��� ������� ���� 2 � � @������ �� ��� ���� ������ - /

����� � � � � �� ���� �� / <

���� 7��� 8 �� =&��� � � � � ��' �� � J���� ��� ��� ��� > &�' �� ��� ���������� ����=&��� � � � � ��' / ) ���� ��� #������� �� ������������� �� ) ���� ���������� ���' ��� ���� ?&�' ���@&�' �� ��� J���� ��� ��� %&.� �� A� '' / .�'�.A'��AM'�

&&.� �� A� '' / M.A' � �A'��' ��� ���� ����� �� � �������� J���� � ���� =&.� �� A� '' � � ���� > &�' /

?&�'� � � ����� �� � � � � ���� ���� > &�' / @&�'� 0������ �� � ���� ���������� �� ��������

���� 7���� 8 &>� �� Q�� ���� )4���' ��!���� �! ���! B �� ��� #�������� ��� � � � � ����� � ��� � ��������� ���� ���� ��� �������� � �������� � ���������� �� �������� ��� � ���������� �� ��� � ��� #��������� �� �� ����� *���������� �� �������� � ��� ������ ��������� � � ��� � ������ � ���������� ������ ���������� ���� �A?'� ���� ����� ��� ��#� ��� ���� ������� D�� � �� ��� ����� �� ���� � �������� ����������� �������� � ������ � �� B� >� �������� �� � / ����� ��� � ��� �&��� ��� ��'&���

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

��� ����� � ��� ) � �

��� �� ��� ������� ��������� �� ���� ��� ���� �� � ������ � �������� ��������� � / � / � / �� � / )� � / -� � / 4� � / ),� � � � �

�' F�#� ���� �� ��� � � ����� B ����� �� ������ ����� B � �� ���� ��� ������ ���������� � ������ � ��� ������ ��������� � � ����������� ����� �!��& ������ �� � ��� � � #��������� ���� ������

���'

�' H�� 6����� Q ��� &/,' � ��#� ���� ��� � ? �� � �� ��� � ��' ��� ���� ��� � � ? �� � �� �� ��� %������ ���� �� &6��� ����������� �; �#����� � B@������:� ����� �������C ��#�� �� A�#�� @������ �� ������������������ &)333'� -,�!-,�2 ����� ������� � &)34�'� -�.!,.-�'

� ���� 7��� 8 6�� ����� � � � � �� �� � � � ��� ����� ��� �� �� ������ � � ) � �� ��������� �� �������� ��� � �� � � )� >� ��������

2��))�� / ���))��� �))��� ��))��� ��)))���>��� � ��� 5�� � � ����� �� �� ��� ��� � � � ��� �� � � � �� ��#��� � ������ ���� ���������� �2� �5����

��

Page 174: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ������� ��� � ����� � ":

��� 7�%� 8 6�� ����� � � ������ ������ �� � � � �� �� ������� �� �������� �� � �������� >� ��������

2))��)��)� / �)��)��)�� ))�)��)�� ))����)�� ))��)���� ))��)��)��>��� � ��� 5� � � ����� �� �� ��� ��� � ������ ������� �� � � � ��� �2� �5������ 7��� 8 �� ����! �!� �& � ��� ��� ��� �� ��� )� � � � � � � )� �� � ��� ����

�� ����� ���� ���� � � ��� ��#� �������� � � ��� �� �#��� ����������

���� � � � � ���� >� ��������&��)-,�*).��,)*�-.),�*.�-�,.*-)�.,-*'

�� � ��#����� ��� ���� � / . ��� � / ��F�#� ���� � � � ��� �� ������� �����

���

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

���� 7��� 8 &D� F����� )3�4�' >��� � B���C ��#����� ��� � ����������� ����� )� � � � � �(�� � ��� ������� ��� ��N������ � ��� ��#� ��������� �� &�(? )'�

���� 7�� 8 &S� 6��; ��� )3-4�' F����:� ������ ������� ���� ��� �3 ������ � ����������� B� �������C ��� �� �� �������� �� � ��� � ���� ��� ���� � ��E���������� ���� ��� ����1

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

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

@� ���� � � ���� ��� �������<

���� 7��� 8 >��� ��#����� ���� � .���������� �� ��� ���� ��� � � � � � � )� ������� . �/ ������ 7��� 8 >��� ��#����� ���� � .���!� ��� ��� ��� �� ��� )� � � � � � � )� ������� . �/ � &������ �� ��������� ������ ���� ���������� ���������'�

� �� � 7�� 8 + ����� �� � ���� ������ ���� ,� ����� ����� ��� ��� ��� � � �� &�� �!� � "' ��� � ��� #�� � &!� "� #� $� %� &� '� (� )� * � +� ,� � -'� S�� ���� �� � ������� �� � �� �� ��� ��� � � ,���� �������� / ���� ��� ��� ��� ���� ����� ����� �� �� ����� ��� ������ 6�� ��� �� ��� � � � ����� �� ��� �� ������ ����� � ���� < � ��� ��� ��� � 1 D�� �<� / ��

�' >�������1 ����6&�' � � � <� / ),� ����� )6&!'� 6&"'� 6&#'� � � � � 6&)'� 6&* '� 6&+'�

6&,'� 6&-', / &)� �� .� � � � � 4� )�� )�� )�� )�'� ��� �� ��������' F����1 �� � / � ��� ��� ���� ��#� ��� ���� ��� #�� �� ��� �� ���������' = ��1 �� � . ��� ��� ��� #�� �� ��� ��� ��#�� ��� �� ��� �� ����� �

� � � ������ �? )� ��� � �������#' >� ����1 �� � / - ��� ��� ���� � < ��#� ��� ���� � ��� ��� �� �� 1� <� ���

- ? 7�� ��� ��� ���� � �� �� ��� �����8�#' $��1 �� � / ) ��� �� 1� <� ��� ) �� ��� ��� �� + � ��� ���� � �� �� ���

>� �������� �� � ��� �+�� %�� % � &!� ��� �� $� �� ��� �������� � ��� -� � ��%������� � �� � ����� �� . �� � ��� �� � ) �� ���� �������� )��

0����� �� ���� ��������� ��� ������� ���� ���� � � ��� � � �������� � / �� )� �� � � � <

��

Page 175: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"- ��'��� ��������� '�!� �"

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

�� 9�#�� � � ������� ��� ��� ��; ��� �� � � � ���� ��� ����� � ���� �� ������� ���������� �������� %���� ���� ���� ���� ������ ����� ���� ���� ���� ������ ��������� D�� � ��� ��� � � � � �� � � �� � ���� �#��� ������� �� �� ) � � ���; �� � ��� ������� � ��� ����� �� ��� ��; ��� �� � � � ���� � � � ���� �� ��� %��� � �������� �� ������ �� ����� � �� ��� � &�'� ��#������� �#��� �� ��� � &�' ������ � ��; � � ������ ���� � � � � ���� ��� �� �� � �? � �� ) � ��

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

��� �� �� �

� �� ���� ��������� #������� � �� ��� ����� �����#� ����� � � ���� �� � ��

��� 7��������I��8 ��� �� � � �� ) � �� ��� �� � �� &"� ��� �� ���� �� � ��'

��� 7T�����8 T���� ��� ������� �� � � � ��� 9 � >- �� �� / ��

�� 70��� ����8 ��� �� � �� � )� � � )� ��� � � >,�

�� 76���� ����8 6�������� �� � / �� S�������� ��� �� � ���)� �� � �� � � �?)�

��� 7������� ���8 ��� �� � �� ? ) ��� ��� �� � >��

7��� ���� �� &)4*3'� -.�2 �� &)4*4'� )3�� 6�� ���� � ���������� � � ���������� ����� �� ���������� ���� �� ��� ��Æ ���8

� "� �� ��#���� ��� ���� � � ��� ) �� &�,'� � ���� ���)�����) � � � )���)��� /)���)����� � � � �)���)�� � 6��� ��#�� ��)��)��)��)��)��)��)��)��)��)��)��)��)�� /)��)��)��)��)��)��)��)��)��)��)��)�� D��������� ���� � ���� � � � ���� ��������� � ���������� ���� � �� � � � �����

������������ �����:� ��� � � ������ ������1 ���� � � � � ��� / ��� � �� � � � � �� � ���>� �������� �)�� )�� 3� *� �� �� �� �� �� �� )� )� �� / �� � ))� � � )�� � � 4� ) � 3� � � �� ) � *� � � ,�� � -� � � .� * � �� � � )� ) � ����� &�' ��� �� / ����&��)'1�� �� ��� ���������� � �?��1��� &�' ��� �� / ��?�?)�� ��� ���������� � �� �� ��

& ������� ������ %��� ��� �� ���� &��� � � � � ��' � ��� ���; ������� ���� ��?��� � � �� ��#�� ��� #�� �� � ����� &�� � � � � �'� ��� ���'

�� �� �� ���� � � �� "� ��� � 6. ���� �� � �2 � 6, ���� �� / ��?) � )2 � 6-�� � � �?) ���� �� / ��?��) �� � ��� ��� ���1 6)� )2 6��

���

�2 6.�

�����

�2

6-��������

�?�������

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

�/�������

�2 6,�

�������

�2 6*�

�������

�?�������

�� )��� ���� �� �������� ������� ���� ������� 6 � ��1 �� �� ���� � � ��

��� 7��������I��8 ��� �� � � ? �� �� ) �� ) � �2 ���� ��� � � )�

��� 7T�����8 T���� ��� �������� �� � � � ����� 6�������� �� � � ��

�� 7A������ �� �8 ��� �� � �� � )� �� �� � �� ��� � � � ? ) ��� ��� �� � ���

�� 7=���� ���� � � � ���8 "���� � � )� ��� ���� � �� � )� � � �� )� ��� ������ ����� / )� 9 � ���

&��� �� A#U�P��� �� � �� &)44�'� )33� $��� ���� �� �� / � � �� �� ) ������ �������� � �� ��� �� ��� ��������� �� � � � ���� � �)� �� � � � � �� ���� ) �� �� � � � �� � �� �� �� ���� �� ���������� �����'

��

Page 176: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� "'

�� ��� 7��������I��8 ��� �� � � � �� � ����)�� � � �� � � �� &"� ��� �� ���� � � � � ��'

��� 7T�����8 T���� ��� �������� ���� � � � ����� 9 � - �� � / ��

�� 7=����� � � � �)� �� � � � )�)����8 ��� �� � )� ���� � �� � � � � )2 ���� ��� / �� ��� � � )� =�� �� � ��

�� 7����� ��� � )��8 ��� �� � � ��� � � � ? )� 6��� �� �� / )� ��� �� � )�� � � ? )� ��� ������ ���� -�

��� 7����� � �����8 6�������� �� � / �2 �������� ��� �� � )�

��� 7S��<8 �� � � �� ��� � � �� =�� �� � ��

�� ���� �� � ��� � ���� �������#��� � ��� �������� � ��� ) �� ���� � � � ��� ����� )� � � � � * ��� ��� ��� ���� ���; ��� )�

���

���������

�����

�� )� �����

�������

�� )� � &�' 6�� %���

�����

�������� ����� ���� � ��� ��#� ������ ��� ������2 ��� �����

������

������ ���� ) ��� ��#� ������� �� -&�)����� � )��)���' / ����&�� �'�

&�' �� ��� ) &�����'1 D�� ��� / �� ?���&�� �' ? )� 6���

��� / ������ ? ������ ? 7�/ �8 ���� �� � �2 ��� / ) ���� �� / ��

����; ����� ��� /��������� �

����������

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

� �

���������

�/�������

�/�

����

��������� � �

�����

��

�� ��� � &�������'1 6�� �������� �� ������ 3 ����� �&�? A' ��� ������ ��������� & .� -' ��� ��� ��� &�� A' ������ 6� � ��

�������

�?���

�� ) � ����

��

76�� ����� �� ������ ����)�)!. �������� ������� � ��������� �� �����8

��� 0�� ������ �������� � � &-� -'��������� �������� � �������� �� ���� ���� ����� �3���� 3���� 3���� 3���� ��� $ ���� ����� �3���� 3���� 3���� 3�������� �� �� �� ��� �� ���� ��� ����� ���� ���� ��� ��������� ����� �� � ������ � 3�&0; �#�������� �� �� �������� ��� ���� ������ � � � � � �$�$�$�$� ��� ������ �������� � � � � � $��' 6�� ������ D��� � ���� �� ��� ��� �� �� �/ �� �� ������ �� �� / �� 6�� ��� ��

����

�?����

�?����

�?����

�������� � ��; � ������� �������

� ��� *4 � ��� �������>� �������� $ $ #$ �� � � � ���� / �)�)��)) #$ �������� / �,.� #$

�������� / *-)�� ��� ���� �� ��� ������ � �������

�?���

�?���

�?���

�/ )4 ��

���������� ����� &$��� ���� ��� ��������

����� �� I�� �� ��� ��� �� �� ��������

� � �������� $�'

��� &4 �����'� $$$$ &3'� ��� $ &�' ���� ��� ���� 0����� ��� ��� �� ������ � �� ��� ���� ��� � � ��������� ���� $$$ � &"� ��������� �������� ���� ���� ���� ��� �� � ��������� �� )4��� )4)�� ��� )4��� 6�� ��� $$ �� �� ������� �� ��� ��� �� ��� �� �� ���� ��� �� )4�� �� ���� � $$ �� � ����������� ������� 6�� ������ $$ $$ ���� �� ��� %��� ���� �� ���)�'

��� &�' D�� �� �� ��� � ����� ����� � � � �� � � � �� / � �� � � ��� � ������ � � � �� / �� � ���� � � � � � �� / � � 6��� ���� � � � � ��� / �� � �� �/ ������ ��� �� ����� ��; � ������� ���� � � � �� � � ���� ��� / 7�/ 8 �� ) � ��

������������ ��� � � � ������ ���������� � � ������ ����� �� ���� � �� ������� �, �*�!�� &��� �� �� �� � �� �� � �������� B������ �����C ��������&��� ������� -�*�)!)4 ��� ������� -�*��$'�

&�' 6�� ������� ��������

��/ ��

�����

��?�������

��� ������� )���*!,3 ��� ���

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

�������� #��� ����� ��#� �� � ��) ��� ����

���

����#�

�� / �� )� 7�� ������� ��� � ���� � ������ ����� ���� � ��������� �� ��� � ���� �

��

Page 177: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

"; ��'��� ��������� '�!� �"

��������� � � ��� �� ��� � ������ ���� � ���� �������� � � �� ��� ���� �� 7'�8���

��

�� 0;� ����)�-!&##'� ��� A� 0� 5� ��� �� ���������� ���� �� &)4�)'� )�3!)3��8

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

��� 7��������I��8 ��� ��� � 7�/ � )8 �� ) � ��� � � � �� �� ��� � � ��� � ��

��� 7T�����8 & � ���� ���� �� ��#� ������ / ) �� ) �� ������ / �� ������ / )�' T���� ��� ������ ����� &������ � � � ������� � � � � ������ � � � ������'�9 � T- �� � � ��

�� 7>��� ��� � )��8 ��� � � )� �� � � � � ���� ��������� / �� 6�������� ��� ? � / ��

�� 7 �� ) � � �� �?��8 ��� � )� �� ������ / )� ��� ������ � �� � ?)���� ������ ���� ������ / �� 6��� �� �� ��� ������ � )2 �������� ��������� � )� �������� � �� � � � � )�

��� 7����� ��� ������8 �� � / �� ��� � � �?)� S��������� �� � � �� ��� ������ � )��� �������� � � �� ) �� ���� ��� � � �� 9 � T��

���� T� %��� � � � ���� ���������� ) � &���� � )'1&�� � )' % ) � ���� � �� ����#� ���� �� �������� ���� ��� �����������

&�' ���� 444444 / -���

��?)*

���

��?,���

��?,���

��?3���

��?����

��?-���

��?)���

��?

����

��� ��� �������� �� � ��� ������ � ��� -� )*G�� ,� ,� 3G�� �� -G�� )� �G�� ������

�� / � � ) ) � � � ) )�

�� / � � � � � � ) � ��

�� / ) � ) ) ) � � � ��

�� / � ) � � � � � � ��

7��&����� 0� ������ ��� @� �� "���� �� ���������� ���� ��� &)4��'� )��!)�4�8

�� D�� � / � ? �� 6���� ����

����������

�����

��������

��%� ������ ��������� ���� �

����

�����������

�����

�������

���������� ���� )� ��� �� �� ����� �%� ����� ���� ������

���� � �������� � � ������� � � �� ��� &&�?)'1�' ����� ��� � ������� �� )� ��� �&� ? )'1�� ������ "� �� �������� ��� � � ����� � �������� ��� ���#����� ��� �%� ������� 7��� 0� ������ ���������� ��� ����! � &)4�,'� �,.!�,32+� Q� �� ���V�� F������� ���� �� &)4*4'� ,*��8

�� ����� ���� !7�8� � � ) ��� �7� � )8� � �� ) � �2 !7�8� �� �7�8� �� 6 ������ ���� ��������� ��� ���� ���� � � �� ��� �� � �� !7�8 � �� �������� �� �7�8�)�6�������� �� � �2 �������� ��� � � �7�8� !7�8� !7�8� ��� �7!7�88� �� 6��� �� �7�8 � ���� � � �� ��� �7�8 � �7�8� !7�7�88 � �� �7�8 � �7�8� !7�7�88 � �� �7�8 � �� !7�8 � �2�������� ��� �7�8� �7�8� !7�7�88� �� >������ ��� �7�8� � ��� !7�8� ��

7��� 5��� ��� D���� �I� �� �������� �� &)44�'� .�)!..,� ����� ��� ���� ���������� � � ������ �������� �� � ������ ���� ������� +��� ��� 6��� ������������ ������� ����)�)!)*� �� ��� ������ ���� �������� ��� �� ��� � ���� ���� #�������� ������ ���� ����� ���� � �� ���� � ���%�� ��� ��#������ � ������ ����������8

��� &6�� ������ ��� �� �� � ��� �� ���������� ���� � �� � � � �� �������� ����������� ���� � ���� � � � ��� ���� �� ��#���� ���������� ���� � ��� ������������ ��; ��� ) � � � ) � ���� � � � ���' J� 6����� D� ��� �������� �� � � � �� ��

Page 178: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� "0

#������ ��&�� ���������

�? � � �?��

�?���

������ ��#� ���� #������� ��� �� � �� ��#�

���

�? � � �?

��)

�? ���

�? � � �?

��)

�/ �? �

�� )�

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

����� �

��

�� ? � � �? ��

�?����� �

M��

M�� ? � � �? M���/

�� ? � � �? ����

�� )

���� ��� �� �� � � )� ��� M�� / )� �� 2 �� ����� ��� ��� ��� �; ����

��

�� ? � � �? ��

�? M��

M�� ? � � �? M���/

�? )

�� ? � � �? ��

��

�� ? � � �? ����

��

��� ���� 444444 /������

�?������

�/�����

�?�����

�?�����

�/����

�?����

�?����

�?����

�/�

���

�?����

�?����

�?����

�?���

�� ��� ������� ��� &�' )-)- )��32 &�' )3� ),. )))2 &' �)

,* .* )-2 &�' -. .� �) ), *2 &�' )������ 444444 � � � � ��

��� J� 6����� D� �� �� ��� ������� ������� � � ���� ����

�2 ��� ��������� �����

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

��

������ ��; ������ ����� �� � � ) ������ ���� � / )� � / �� ��� ���� �� �? )�� � ��1&� � �' I�� � ��� ����� ���� � � 2 ���� �� ������ ��� %��� ����� ��������� � � �&� � �'1�� � � � � )� �� ���� ���� �� ��#� � / ��

� ������

�� ���

�� � �� � ��2 ��������� ���� �� � �� � / �2 �������� ��� �� ��1�� �� ��)�� � � � )2 ����� � � ��� � � �&� � �'1�� � � � � )2 ������� 6��� ����� ��; �����&�' ��������� �������� �� �

���

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

"��� � / �� ������� )���-!-) ����� � ���� �� / �(� ? � ? �� �� �� ��������

�� �� ��� ����� � �� ��� ������� �� � �� / �W 2 ���� �� �� �� ������������� ��#������ ��� ������ A / &��'��� / � � �

�&� � )' ? �

��&�� � )'��� ? � � � � ��� � /

A? �� &�� )'? �

�� &��� )'1A?�&A��'� ������� A / &�W '��� �� ���� ��� �� ��#�� � ��

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

� ��������

�� ���� � %���

��E ������� 7��� � �� >������� ��� Q� Q�� �� � �� �� &)43.'� ..*!.-.�8

��� ������ ������ ���� � �� � ) ���� �� �������� ���� �� ����� ��� �� ������ ���� ��� B���� � �����C �� ���������� ������� ������ &>��� *. �� ����� ,�-�)'�6������� ������� ����� ����:� ��������2 ��� ����� ���� � ��� �� ��� � ? )� ������ ���� ������� �� ��� � � �� ) � �����

6��� ������������� � � ������� ���� ��� ��� �� � ������� ���� ��� /&��)�'� �������� � ��� �������� ���� ������ ������ �� �

�)���

� � �� �� ���&)������'� ����� ���&�' / �� ? ���&�� �� ? )' �� �� � � ����� ������&�' / �� � �� �� ))))�)����)��)���)���

��� =&'' / &) ? '����' � � � &) ? '��'1&)� ''� %&'' / &) ? '��'=&''� &&'' / '��=&''�

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

��) ��� � ��� ���� � ���� � � � ����� 7��� @� DR ��� ������� ����� ���� "����� �� &)43�'� ��3!����8

��� ���� 444444 /������

� � ����� � / ����� � � ��� � ? ���� � / ���� � � ���� � ? ���� � � ���� � /����

� � ����

�?����

� � ����

�?���

�� ��� ������� ��� &�' )-)- -�,2 &�' )3� 4� �)2 &' �) ,*

.) �*2 &�' -. .4 .� )� .2 &�' )������ 444444 444443 44444* � � � ��

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

���������� ���� � � �� �� � / )� �� � � � � �� &�� � / ) �� ��#�

�� / ��?)2 �� � / � �� ��#� �� / �� �� / )2 �� � / . �� ��#� �� / �� �� / )� �� / ��?)2���' 6� � ��� ���� �� )

���

�?�������

�?� � �?����� �,����� / ����

�����

�/ &�?)'1&�?)��'�

Page 179: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*. ��'��� ��������� '�!� �"

6�� �#����� � ����� ���� ��� ���� �� ������������ ��������� � ���� ; ������2 �� ���� �������� �� ; ��� ���� ���� � �� ������ � � ��� �� � �� ���� ��

�� �� ��� �� � � ���� �� ? ) ���� �� ) � &�� � �' ��� �� � ) ���� �� ? ����� �� �) �� ��� �� =, �� �������� ��� ���� �� / C� ) �� ) C � ��

6� � �� �� ���� B�� � -� ��� � � ��)�7� ��8 ��� � � =,C �� ��� ��� � =���� � �� ��2 B�� � .� ��� � � � � )� 7� �#��8 ��� � � =,C �� � �� �#��� 6�� ������������ ���� �� ������� ���� =- ��� =, ���� �� �������� �� ��� ���� ��� #�����

��� �� �� ���� � � ��� � � �� ����� �2 � �������� ��� �� �� ����� ��� �E�� � ���� ��� ������� 6��� �� � ����

�� ����� �� �� ������� � 1� * � ���� � � � ��� ��� ��� ���������� � *� �� ������� � �� �� ) �� � � �2 �� �� ����� �� �� ������� � � ��� ��� ������������� ���� ������ � ��� � &� � )'��������� �� ������� � ��� �������� �� � � � �� � � �� �� ������ ��� ��� ������� ������#�� ����������� ��������������2 ���� � � � �� ����� ��� � ���� � ��������� ������� ��� ������� ��� �� J � �� �� ����� �� � � � � � �� ������ ����; ����� � / ( ����� / �(� )�

$� �� ��� � �� � )� �� �� ������� � � �� ��������� ���� 6������� ��� /

�(��� ��� ��� ������ ��� ���� ��� �� � %����� �����( ��� � ����&���� � � � ��'�����&����� � � � �

��'� ����� ���� ������ � 9��� ������ ���

D�� =&�� �' / ���)����&�� � � � ��'� ����&�� � � � ��', #�� ��� ���� � � � � ��� �� � � � � ��� /��� � � � � �? �� )�� 6��� =&�� �' �����%�� ��� �� � �� �����

=&�� �' / =&�� �' / �2 =&)� �' / �2

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

�?���)=&�� )� �� )'� =&�� �� �', �� �� � ��

"��� �? � / �D? � ��� �� ��� � ��� � � ��

=&�� �' / �D? )

�� )�?����� �

�D? )� ��

�?����� �

�� ? )

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

���� ��� ����� � ����� �� =&��)� ��)' ���� � � ��� �� =&���� �' ���� � �?��6������� ��� ����� � � � �� ��

/ ��(� )� * ��(� �� � � ) � �(� �� ��� - )��� / ��(� �� * ��(� �� � � ) � �(� �� ��� - ��2

��� �� �; �����������

� ������ �

������

�/ ) ?

����� �

������

�� 7 � +� #�� (������ #$$$

����� ���� &)44)'� )��4!)�..�8

��� &�' X��1 6�� %��� �� �������)���� ������� ��� ��� ���� �� ������)���� ��������2���������� ��� � �������� � ��� ���� ���) � )���� ���� � )��)� )��) � �����)���� ���)�

&�' $1 �� � / � ����� �� � ��� E �� ��� ������� � ��������

��� 6�� ������� ���� �� ������� ��� ��������� �� � � � �� � L� ���� ��#� ������ �1 J���� ���� � � ��� �� � �� T���� �� � � � ��� �� �� �#�� ��� �� / �� ��� � � )2 �� �� �#�� ��� �� � �� ��� �� � �� � ) �� / �� �������� � ? )��� �� � �� S� ��� ���� ���� �� �� �� ��� �� ? ) / ����� ��� � � ) ����� � ���� &� � ��������� �� / �'2 �� �� �� ��� �� ? ) � ����� ��� �� � �� ? ) �� / �� �������� � ? )� �� � ����� ���� � �� ? )� =������

&6��� ������ �������� ��� �� � ���� � ������� ����)�)!)�&�' ���� � / �� ���������� ������ � �������'

��

Page 180: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� *

��� 6� �� J�� ������� ���� � � � �� / �) ��� ����� � � � ��� / �)� ������� � ����� �����

&�� � � � �� / EF� �� � � � �� / GH' ��� &��� � � � ��� / EF�� ��� � � � �

�� / GH�' � � ���� �#��������

������� �) ��� �)� ������ ���� � �� ��� ��� �� �#�������� ������� EF ��� EF� ���������� E ��� �#�������� ������� GH ��� GH� ������ ���� G� >� �������� �� � / )�� ������%� � / �))�) �������� � ���%��� E / 4* ��� G / 3�,�

&J � E �� ��#��� �� � � � �� �� ������ ���� �� � � � ������ ������� >� ������������ � � ��; ��� �� ������ ���� � / )�'

� � &�' �� ��� � �� ������ � ��� �� � !�( ��&�' $2 ��� � ���� �� ������ ������� �� ������� ������� �������

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

&�' D�� ��� ��� ���� � �� �� &�)'��� � ��� ��� �� �� �� ������ ��� � 6��� �� ��#�&�)'���������� / &�)'������������������ �� � C � ��� ) � �� �� �� ��� ��� / ��

&�' J� ����� &�'� &�'� ��� &'� � ������ � ��� ���� �� � � � � � ��� ����� ���� %��� &��� � � ����' ��� �� �� ������� &��� � ���������'� J� ���� &�'� �#���� � ���� ��� �� ���

�����

���������� J � ����� ��� �� %��� �������� �� &�'� ��� �����

��� �������

�������� ���� � ����� ��� � I���2 � � �� ��

�����

�� )���&����� �#�%� � &)4�.'� )�3!)..�

�� �� �� ���� � � �� ������� ������� ��� ��� ������#�� � %��� �������� D�� I� ����� ������� ������ ��7� �� � � � ����� ����� ��� �� ������� � 7� �� ) � ��� &�)'�� ���� � �� ��� ������ � ���� &���� � � � ��'�2 �� � I� / ���� � � � �� I� / ���� � � � �� � � � � I������ / ���� � � � �� D�� J� �� ��� %��� ������ ������� �� ���������� � ����� ��� %��� � � � ��� � ����� �� 7� 2 �� � J� / � ��� � � � �� J� / �� �� � � � �� � � � �J������ / �� � � � � �� "� ��� ��� I���� / I� ��� J���� / J�� 6��� �� �� ��#� ����� ��� ���� ��� ���� ��������� ���� I� ���� ���� J� ���� � �� �#��� ���� J���

���� � �� ��� �� ) � ����� 6������� ��� ���� ��������� ���� �J� ���� �����I� � �I����

D�� �&�� �' �� ��� ��; ��� � &�� �'���������� ����#�� �� ������� ��� �������� ������ ���� I� � ��� ��� ��&�� �' �� ��� ����� � ��; ��� ����#�� ��� �J� � 6������ ) � ����� ��� ��#���� ��; ��� �&�� �'� �� ��&�� �' ���� � �� �#��� ����&�� �'���� � �� ��� 6�� ���������� �� ������ ���� �� � � ���

�&�� �' /

�)�&�� �� )'� ��������������&�� )� �'�� �� � �� �#��2

)�&�� �� )'� ������&�� )� �'� �� � �� �#��2

��� ���� �� � � ��� ���� � ����� ��; ���� ��� ��������

�����:� ��; ��� �� �� ������&�� �'� ��� ��� �� ��������&�� �'� ������������ ���

������ � ��; ��� K�� � &��' �� ������� �����&�� �'��

�� &�' �&���� '�� ��#�� ��� �� ����� =&�� �' / �=&� � )� �'=&�� � � )' ���� =&�� �' /

=&�� �' / )� &�' $� =&�� �' / &�? )'W=&�� �� )' � � � =&�� �� )' ��� ��� �� ���

&�? )'W��W&��'&�� )'W&���� ' � � � �W&�����

� ' /��� �

&� ? )'W&�������

��� '��� ���

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

��

Page 181: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*! ��'��� ��������� '�!� �"

�#��� 6�� ����� �� �? � * ���)

) )) � )

) - - -) 3 �� 3 )

) )* )*� )*� )* )) .� ��*- )�),� ��*- .� )

��� =&-� -' / 4,�.�-�))��3*,��3�2 =&,� ,' % ,�4�*-* � )���� 76��� ���� � ����������������� ��� %��� �� ���� �� 9� 0������ ���� �� &)4�.'� ,��!,).� � � �� ��� ��������� � �� ������ �����8

&�' J� ��������� ��� ��� � 6����� $� �� �� ��� ���� ��� � � �������� ������ ��#������ � �� � � ��� )��� � ��)����� �� ��� �� ) � �� Q��#��� ���� ���� ���� � ������������� ��#�� �� �� ��� �� �����%��

���� /

������������������ �� � � )�

�������������� ? � � �? ������������������ �� � / ) � ��

���� �� � �� 6��� �� ����� ��� ��� ���������� �� ��� ���� / ��������� �����

(&�� �� �' /

��������

�?���������

�? � � �? ����

�� �� � �� �#��2�

������

�?���������

�? � � �? ��

�? �� �� 7���8� �� � �� ���

� ������� %��� ��� ��� � / )1 6�� � ���� � ����������� ����� ��� C � � � C ��=)� � C� 7C� �8� 7� ��� )8,� ������� =&�''

� / )1&)� '� '�'� &J� �������� ������� ��; ��� =&�' ������ �� ����:� �������� ����� � * ������ 6���� ,�-��!��' 6��� � #�� � C � � � � �� .=&�' ? =&��)' ? =&���' ? �� �2 ��� �� � �� � ��� ������ #�� ���� ���� � � C�

"��� � � ) �� �� ���� ����

�����

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

����� ��� ��� ���� ����� ��� ���������� 6�� ������� � ����� ������� ��� � �� ���� �� � ������� �� ��� ��� � � )� � ���� #�� ��� ����� � ��� ���� ���������� � / )� 6�� ����� �� �? � * � �� � � ��

)) )

) � )) * � )

) )� )� � )) �� -- )� � )

) .- �.3 *3 )� � )

)) )) � )) � � )) � � � )) � � � � )) � * � � � )

����� ��� ���������� �������� ���� ��� � ���� � �!��� %&�� �'� > ����� #�� �� ��� ��=&-� -' / )��.*2 =&,� ,' / 4�4���333�3�4�43-2 %&-� -' / 4*2 %&,� ,' / .��4*)�-,*�.���

6���� ��� ������ )� � � ������ ���� � / � ��� � -� >� �������� ����� / � ���� � � ��� -.�)� � *,-.) � *,-.�� � ��� ,-.�) � *,-�� � *,-.� �*,-.�� � ��� ��#�����

� 6�� ����� � �� �� �� ��� �� �� ��� ���#� � ������� � � ���� ������ ������� � ���������� ��� / ����&��� ? ���' ������� � ������� ������ � ������������� /

�� ������ � &"��� � / � / ,� ��� ������ ���� �� >��� �*&�' ���� ��� -4 ��������

���������� �� ����������� ��; �� 6���� �� � ������ ��� �� � / � / , ���� ��� ��� ,,������������'

��

Page 182: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� *"

�� >�� ��� �� ������ &��' �� ��#� ��� / ������ ? 7�� )87�� �8 ? ������� ��� /������ ? ������2 ���; ����� ��� / ��� ? 7�� )87� ��8 ��� ��� / ������ ? ������ ?7�� )87� ��8� 6�� �� ��� ��

��� /

����� �

�? �� �� �

�� ��� 7�� )87� �#��82

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

��

�� ������� ��� ������ ���� ���� �� ��� &�� �' ��� ���� �� ���#��� ��%��� � ���������� �� &��)� �' ��� &�� ��)' �����#�� �� � �2 ��� ��� &�� �' �� � ���� �� �� / �� 6������ � ����� ���� �� &�� �' ���

�����

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

���� � � � ����� $��� � ��#�� ! ������� � ���%��� ���� � � � ����� ��� ���#�� ���#�� ! ��� ��������� ���� � / �� !�

�� ������ �������� �� ��������� ���� � � � ���� �������� � ������� ����#����� � � � � ����� ����� ��� ������� � ���

�����

� � ) ����� ���� ��#� ���������� �� ��� ������� ���2 ����� �� ���� �� ��� ����� ��� �&

���� '�� � � ������ ������

&������� .)&�''� �� ��� ������� � � � ? ) �� �������� ������ �� ��� ��������� ������ ����� ��� ������� ��#� ���� ��������

������������ ������� ����)��!*&�' ������� ���� ��� �#����� #�� � � � �� �1&�?)'?�1&�?)'� ���� �� �� Y&�'2 �� � ��� ����� ���� ������ � ���� ���� � � �� ����������

�� &�' �� ��� ���������� ��� �� �����:� �������� ��� .� ������ ���� �� �� ���#��� � � �� ��� ��� �� �� / �� ���� ������� �� � ) ��� ���� � � ����� ��� �� ����� ������ �� � � )1 �� � / �� ��� � � � � )2 �������� ��� ���� � � � �� � ��)����� ���� � � � )� � &� � � � �� � ��� � � )'�

&�' $� ��� ���������� � �� ������� ���� � � ) ��� � ����� �� � � � �� �� �����1�)� � ))�)���� �)�� � )����� �)��)� � ))����)���� )�� � �)����� ))�� � �)����)�)��)� � ��)���2 ����� ��� ���� ��� ������ ������� ������ 6�� #�� � � � �� �� ������������������

&' ���� ��� ��� � / ) �� ���#���� S�������� �)��� � )�)�����2 ��)� � )��)���2)�)��� � �)�����2 )��)� � ��)���2 ��� ����� �� ��� �� ����� � ���� ���� �� � ��� �� ���� � � � ���� ������ �� ����� �� �1 D�� � � �� ������� ���� �� / ��6��� )�� � �)���� �� �� ��� )�� � ��) �� �� �#���

�� 6�� ���� �������� ����� ����� ���� &�' ���� �) ���� ���� � � � �� � �)����� ��� �� �� � � / )� ���� � � � �� � ��)����� �� � �� �#�� ��� � � )� ���� �� ����������#�� � � �2 &��' ���� �. ����������� ��� ���� � �#�� ��� ��2 &���' ���� �, ��� � �-��� �� � / )�

� �� �������� ����� ���� � � �� � � � ? � � )� ��� ������ ��� ������� ����� ������ / �1

� � � ? 7.� /�8 �? �� ���� ��

�� �� �� 7�� /�8� �� �� 7�� /)8� � � � � )�

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

�?�����

�?�����

�?��

�?����

�?����

�?���

�?���

�?���

�?���

�/ �.4�).)�

�� "� ����� ���� � 444444� 6 � �� ��� ������ ��� ������� ����� ���� �� / �1 ��6 / �� ��� � � � � ) ��� ���� � ) �� �

�������

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

��

6 � &� ? �' �� �� � � � � )� ���� � �� �� 6 / )� ��� 6 � &� ? �' �� �� � � � � )���� ���� � � �� �

�������

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

�� � � � � )� ���� � )�

��

Page 183: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

** ��'��� ��������� '�!� �"

>������ �� � / �� ��� ���� � � � �� � )�2 �� � / �� ��� ���� � � � �� � ��� 6�� ������ ����� � � � �� / )))�)��))))))�)�)��)�����)�

�� D�� �&�'� � � � � �&�� � )' / � ����� �� / ������ )����2 ���� / ����

) ���2 ��� / )����� � �����2 ����� / ) ���� � ���2 � / �� / 8� 6��� �� � �� /�����&�����&�����&������ � � ''' �� � �� �#��� �����&�����&�����&������ � � ''' �� � �� ���� �� ��� �� ��� ��#� ��� ��#���� ������� �)& � � � M����M����M����'�, / & � � �M����M����M����'�

�� 0; ���� &,#' ���� ���� ��� ���� ����� ���� � � � ���� ��� �� �N�� ��� ����#��� ��� �������� � ���� � � � �� �� �� / � ��� ! � �� 6������� �� �� �����I� ������� � �� ����� ��������� ���� ��� ���� ������ ��� ��������� ��� ������� ���� ��� � ���� � ����� ��� ������� �� �������� �� �� ����������� ��7.�'�8 �&.� ''1&)� .�'�&)� '�'�&)� . � '' �� �� ���������� �������� �&.� ''�

>� �������� ��� �������� ��� ��� �, � �- �� �� ��� �������� ���� �������� �)�����)��� � ��� ��� ��� )����)���� �� �������� �� � �2 ��� �������������������� � ����� ��� .�'�1&)� '�'�&)� . � '' ��� .&'� ? '�'1&)� '�'��

@��� ��� ��� ��������� �&.� '' �� ��� ��������� D�� L / )�.�� M / )� '��

�.� �-1 .'L &)?.''&)�.�'�'1�.� �,1 .'L &.?''&)�.'�'�'1�.� �*1 .�'�L &.?''1�.� ��1 .�'L &)?.''1�-&� / )'1 .'L �M&)�.�'�'1�-&� � ��)'1 .�'LM&)�.�'�'1�-&� � �'1 .'�L �&)?'��.'�'��'�'1�,� �-1 .'�L �&)�.'�'�'1�,&� � ���'1 .�'LM&)�.'�'�'1

�,&� � )'1 .�'L �M&)�.'�'�'1�,&� � ��)'1 .�'�L �&)�.'�'�'1�*&� / )'1 .�'L �M1�*&� � ��)'1 .�'�L �1�*&� � �'1 .�'�LM1��� �*1 .�'L �1��&� � �'1 .�'LM1��&� � ���'1 .�'�L �1

6�� �������� #�� � �������

�)�&) � �� �'1&�� � ��'�&) � ��'� ? �&���',� �� %���

� � � � )� �� � / �� ? �&)' �� � � �� 6� � �� %��� �� �������� ���� ��� � ������������� �� ���� �. ����� ���� ���� ������#� ���; ����� �?����� 1 ) 1 � 1 )?�����

������������ ��� � ���� � ���� ���� � �� ������ ��� � ���� � ���� ����� �#�� �� �

�����

�? �� � � �!

�� � �7� ? �! �? �8 ? 7� ��87� ��8�

�� ��� ������ ����� ���� ��� &�+'� 6��� ; ������ ��� ��� ����������� ����������� ���� .'1&) ? .'&) ? ''&)� . � ''�

� 6�� �������� �� �� � �� ��� ��������#� �������� �� ����� ���� � / )�

� �� ���� �&�'� ) / ��&�� )'�� ��� ��&�'� ) / �&�� )'�� &@��� �&�'� � /�&�� �'� ���'�� �� ��� ������� ��������� � �� ��� ����� � ������ ���� �� ��

���� 7��������I��8 ��� �� � � � � � ) ? � ��� '� � � �� ) � � ? )� �� ���� � )� &"� ��� �� ���� � � � � ��'

���� 7T�����8 T���� ��� �������� �� � � � ����� 6��� ��� � � ��

��� 7J�����8 9 � ��, �� '� �/ ����� 76�� � ������� �� �8 ��� � � �� ? &�� �� �' � �� �� � �� ��� �� � ��

� � )2 �������� �� �� / �� ��� �� � � � )� '� � ���� � )&���� ? )' �� �,�� � �2 �������� �� �� � �� ��� �� � �� '� � ���� � )&���� ? )' �� �,�� � ���&)� � � )'2 �������� ��� �� � �� � � �� =�� �� � ����

��

Page 184: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� *:

���� 76�� � ������� �� �8 ��� � � �� ? �� �� � � '� � ��� �� � �2 ���������� � / '� ��� '� �/ �� ��� �� � � � &���� �� �'2 �������� ��� '� � ��� � � ? )� ��� � � ��. &� � ��������� �� � � �'� �� �� � �� ��� � � )2�������� ��� � � � � )� =�� �� � ����

�� 0;� &,#' ������� ���� D� / &�� ? ? )' �� � ���� � �� ������� ���� �� � �6��� &�*' ��� &��' ����� ��� ������� ��������� ����� �� ��� �� �� �#���������� . � � ��

���� 7��������I��8 ��� �� � � � ) �� ) � �2 ��� ��� ' � �?)� �� � )� &"���� ���; ��� ����� ������� ��� #�� � � '� �� �� ��� �������� ����� � � ������ �/ ' � )�'

���� 7T�����8 T���� ��� � �� �������� �� � � � �����

��� 7J�����8 �� �� �� ��1 9 � �J- �� �� �/ ��?)� �������� � �J, �� �� � ���������� � �J* �� �� �� ��� 9 � �J4 �� �� �� �#�� ��� �� � �� S��������� � �J3 �� ���� / �� ? )� �������� � �J��

��� 7������� ���8 ��� �� � �� ? ) ��� ��� �� � �J��

���� 7����� �� ��� ���8 �� �� �� ��� ��� �� � �� ? ) ��� �� � �� ? )2 ����������� �� � �� � )� �� � �� � )� ' � .� 9 � �J��

���� 7����� �����8 �� ' �� ��� ��� ' � ' � �� ���� � ' ? )� �� � '2 �������� ���' � ' � )� �� � '� 9 � �J��

���� 7����� ���8 �� ���� �� ��� ��� �� � �� ?) ��� ��������� �� �� �2 ����������� �� � �� � )� ���� �� �� � ' ��� ' � ' ? )� 6 �J��

���� 7����� �� ��� �����8 �� ���� �� ��� ��� �� � ����� ���� � �� ? )� ������������ �� ���� �� S�������� ��� ���� � ��� �� � �� � )� ���� �� �� � '��� ' � ' ? �� 6 �J��

�� � 7A������ ���8 ��� �� � �� � )� ' � �� ��� ��� �� � �J��

$��� ���� ���� �������� �� !���!���� ����� ��#� � ������� ���� �� �� ��� ��; ������� �� ���� ���� � &)434'� �..!�.�� �� �� �� �� ���I��� ���� ���� �������� ��%����������� ��� ��������� � ��� ������ �� � � � �� ��� �� �� ��� �������� �� ������#� � ��������

�� "� ��� �� �������� �� ������� � ��� ��� ��#���� &������� .3'� ���� .�������� �� � ����� � ���� ���� ���� ��������� ���#��� �� ��N����� ��#��� � ����� ����� �������� ������� ��� ��� � � � � � �� ��� ������ � ���� ���� � ��� ��#�� ��� ��� ��#��� &Q��� ���� �� ���� ��� ��������'

�� 6���� ��� ���� ������ N�� � � � � N� � � ���� ��� �� ������� � O� �� N����)���� �� N��� � �� ��� �� ��� ���� ������ � ��� �)� � � � � � ��� �� � #����� ��� � � �)�

� ��� �! ����� 6�� %��� � ������� � � ������ � ��#�#������ ������� &�� �'���������� ��� �� P0#� 6R�R�� ��������!�� &� ! � &)4*3'� )-.!)-*��� ��� ���#���� �� ��� ��������� � � ������ ���� ������� Q��� � ���� ��#�� ���; ����� ������ � ��� ��������� ������ �� ������� ���� ����� � � ����������� ���� ���� ��������� �� �� ���������

� "� ��#� ���� �&'���� � )'1&'���� � )' / ) ���� � � � � (� ��� ��� �����

�� ���� �& ('����'1&!('����' / 1! ���� � / �� � �� �� ���� � ����� � ���� ������

�������&'

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

� ) � &�� � ('�-����� �� ��� ������ ��� ( / �� � / �)� ��� ���� ���� #������� ��� ���� �

�� �#�� ��� �� ��� 6�� ��� �����

��/�����

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

�����

��� ���

��

Page 185: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*- ��'��� ��������� '�!� �"

������ �; �� ��

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

�� "� �� ���#��� ��#� � 1(� ? �&� � '1(� / ��1(� ��

��� ��� ���� ���( ��(2 �������� ��� ���� ���� �� I���

��� 6�� ������ ����� �� I�� ���� �� ��(? � � �?�� ��( (� S�������� ���; ��� �&�� ? � � �? ��'1(�

���1(�� � � � � ���1(��

&�� ? � � �? ��' ��(

�� ��(� � � � � �� ��(

���

�� 0;� )���*!&,�'2 ���� ��� ���� ����� �� ��� � � � ��� ���� �������

��� �� ����� ������ � � ������� ���))) ��� )))���� ���� ���� #������ ��#� ������� )� > ����� ���� ����� ��� � � � � ���� ��� ������ �; �#������� 6�� ������ &�#'� ���� �� �; �#����� � ������ ���� ��K�����������#������ �� �� ���������� ��� ����� ��; ��� / .-,�).�,�.-)-.,-)�.2 ��� ���� ����� ������ ��� � /.-,�,-)-,.-)-,)�,-.� / .-,�,-)-,.�,�),-)�.� O / .-,�).-)-,.-)-.�,-.� A� @�D����� � �� ���� 7��� �� &)4*,'� ���� ��� .*!-*82 O �� ����������� ��� �������� ��� �� 0����� @����� ��� =����

&������������ ������ ������ ����:� ������ ����� ���� �� ���� ���� � �� ��Æ ��� ���� � �������������� 6�� ��� � / .� � / , ��� -��,���-* � �����'

��� "� ��� ��� �� ���� ��� �� �� ��I�� ��� ���� � � )� 6��� ��� ��N������������ ���� ������ ���� �� �#�� ��� �� � ���� � ��#������ ��

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

� �� �� ������� ,�� ����� �� ����� �� � ��� � ����������� �� ��� ���

��#������� �� �� ����� �� � ����������� ��� ��� � ������� ���� ��� �� 9� ��������� 7�#�� �� '������ ����� � &)44�'� )44!��*8 ���� ���� � ������ ������������ ������� ��� ���� ��� ������� � � #������ � ������� ������ �������2 ����� ������ ��� � � ������� �� ��#�� � @��������� �� �� �� ��� ���� ���� � � ) ������� ��� ����� ���� � / �� �� / �� / )� ��� �� �� �#���

�� ��� ��� �� &)4*,'� F��� ��� .*!-*�

�� �� ���� ���� �� �/ �� � @��������� ���� ������ �� ��� ��� �� � ��� � ��� ����� �#��2 � @��������� �� �� ������ �� ��� ��� ��� �� �������� &� �/ � ��� � �/ �' �� / ,� 76� �� 0���� '������ ����� ��� &)44.'� ),.!)*,�8

��� 7'������ ����� � &)43-'� )*.!)�)�8 6��� ������ �� �; �#����� � ��� B��������#��� �E�� ���C ���� ������ ���� ����� �� � 9��� ���� ��� �� ��� ������ �������� ������ �� � ) ��� ������� �� � )� ��� �� ���� � � ������� �� ����� �������� ����������� �� � ����� ��; ��� � ��� ������ ��� ���� � � � ����� ����� ��� �������� ��� ��� ���� � �� ������� �� � �� � ��� )� >� �������� ���� � / . �� �� ��������� ������������ / ���))) ��� ���������� ���� �� � �Æ� ����� Æ � �� ��� �� ������ &-).- ,�-, ).,) �-)� .,�.'� 6�� ������ ��#��� �E�� �� �� ���� � �� �� � ��� ), 7��� �� ������� ��� �� A� ��#���� ���� ���� �� &)444'� )*)!)�38���� X��2 ����� �� � ����������� ������ �� ��� �� ��� (� �� ��� � ���� � ( � ��S�� � � ������ �� ��������� ������� �� )���������

���� �)���������������

� � � � ����)��������� ������)����������� � � � � �

���)������ ���� ��� ��; ������ � &��'�

��� ��#� ��� ���#� � ������ ���� ( ��� � ��� �� �� � � )� ���� ��� � � ) ���� �� � &���� &�'� ���� �� ����� ����� ������� ��� ������� ���� � �I�����'

��� 6�� ���������� � ���� ?���&�' /�

%������ �� ��� � ���� %���� � ����

�������� �� ����� ��� ����)� �����%��?���&�' /���

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

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

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

��(� ������ ����� �� ������� ��� �� �?���&�)'� )� J � �� � ( � � �� ����

��

Page 186: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� *'

������ ���� ��� ���� ( / �? ) � &�� �'� �� ��� �� ������� -4� � ����� �� ������� �� ��� ���� � / - ��� ( � ,� &Q��� ���� ��#� ��� �� �������� ����� / � ? �� � �� �� ������ � �� � ���� ���� �� ���� ���� � ( � , ��� � / .���������� � ��#� ������ ����� ���� � �� �#���'

� � 6�� ������� �� ��� ��� ���������� ����� ������ ��� � ��� �� ���� ��� �#������ �� �� � �� ����� ��� ���� �� � ����� "� ��� ��� �� ���� ��(� � � �(� �/ ���� � (� ? � � �?(� ?(��

��� 7��������I��8 ��� �� � � �� ) � �� ��� � / ��

��� 7A������ ���8 ��� � � �� 6��� ����� � � (� � ��� �� � (� � � � � � (� �� � � ? )� ��� ������ ���� � (� � >������ ��� �� � ��

�� 7T�����8 T���� ��� � ���� ������� �� � � � �����

�� 7F�� � ��� �������� �����8 �� � / �� ��� � � �� � )� � � )� S�������� ���� / �� ��� �� �� � )� �� � �� ��� � � � ? )� S�������� � � Z��

��� 7> ��<8 6�������� �� � � �� S�������� �� �� / (� � ��� � � � ?(� � �� � ��� � � ? )� ��� ������ ���� �����

��� 7������� �� �8 ��� �� � �� ? )� 6��� �� � / �� ��� �� � � ��� ��� �� � Z.�S�������� � � Z��

��� 7������� ��� ��������8 "���� �� / (� � ��� � � �?) ��� ������ ���� �� � (�&� � ��������� �� � � �'� 6��� ��� �� � �� ? )� � � � � )� �� � �� � )� ���� / )� ��� � � )� =�� �� � Z.�

>� �������� ��(� / � � � / (� / 4� ��� � ����� � ��� ������� .?4?4?�?�?���� -?�?�?*?4?4� -?�?�?�?3?4� -?�?�?�?4?3� -?�?�?3?�?4� � � � �

��� D�� >�&�' / � �� � � � � � � (� ? � � �?(�2 �������� ��� >�&�' / �� ���

>�&�' / �?>���&�'� )?>���&�� )'�� �?>���&�� �'� � � � � (�?>���&��(�'��

���� � � �� 6��� ��; ��� �� �� ���� � ��#� ��� ��; ���� ���������2 �� ��� ������ �; �#����� � ��� �������� ��%��� �� ��� ������ � ��; ��� K�� � &��' ���� ��� ���������� � ������� -� ���� ��������� � ��� � ���; ��� ��%��� ����� � ��� (�� � � � � (�� 7��� 6� "����� �� ���������� ����� ��� ������������ ����� &����'� .�.!.-,� �� ��� ����������� �� ���������8

��� &�' �� � �������� ����� ���� �� � �� � ��� �� ? � � �? �� � � �� �; �#������ ��#��� � / �� ? � � �? �� ���� � �� ��� � � � � � �� ���

&�' "� �� �� �� �� ��; �������� �� ������� ��� � ���&�� � ��� � � � � � ��������� � ��� � � � � � ������' �� � / )� � � � � �� �� C / )� � � � � (� ��������#���� �� �� ��� ������ � ��� ��� � � � � � ��� � �� ��� � ��� ��������� ��� ���� �� �������� �� ��2 ���� � ��� ��� ��� � ��� ��� � � � � � ��� � �� ��� � ��� ��������� � ��� ���� ���������� �� ��� 6�� ���� ������ ���� ���� �� ��� (? �� ) � ��� ������� �����I��� "� �� ��� ����� ��� ��� ������� ��� ��

��� / ���)�����&��� �� � �� ? � � �? �� � �� � � � � � ����� �� ? � � �? �� � �� � � � � � ����',�

&' 6�� ���� ������ �� ������� �� �� &�'�&�' =�#���� ���� ��� ����� �� &�' ��� &'� ��������

��� / ���)�����&��� �� � ���� ? � � �? �� � �� � � � � � ����� �� ? � � �? �� � �� � � � � � ��',

�� ��� �����

��

Page 187: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

*; ��'��� ��������� '�!� �"

&�' @��� �� ���� ���� ������� ����1 9������� ��� %��� �� E �� �� �� � ������������ � ��� ���� � ��� &��� � � � � ��'2 ��� �� ��� �� &���� � � � � ���'� ��������� ��� ��������� ��� �� ���#��� �� ��� ���� ���� � � ���� ��� � �� � ��&�� � ���� � � � � �� � ���'� Q�� � ��� ���� ����� ���� � ��� ���� �� ����� � ���� � ����� �� ���� � �� ������� �� ��� ����� ��� � �� �� �����������I���

��� �� ��� ��� ��� ��� �����#�� �� ����� ������ �������� ����� �� ������� ��� ���� � )� ��� � ���?)� ��� � ��� ?)� ��� � ���� )� "� ���� � ��� ���� ��� ����� ?���� #������ ��� ��� �������� ������ �� &��� � � � � ��2 ��� � � � � ��'� ��E���� �� ������ �� ������� ��� ��� ���� �� � � � ������������� ��� � @��������� �����

"��� ( / � / �� ? �� � ������ ����� "��� ( / � ��� � / .� ? ��� � ������������� ��� � �� ��� ���� �� �� ��� ���� �#��� #����� �� ��� �������� ���� � ������� �� @��������� ������ ��#��� ������� ��������� "��� ( / � ��� � - �� ������ ��� ��#���� ���� ? �� ���� ��� @��������� ����� ��� ��� #����� � ��� �����

"��� ( . ��� � .� �� �� ��� � ��� ������ ��� ( � (� ) �� �� ������*)&�'� �� �� ��� ���� � �� � B����� ����#�� ��� � �����C $������ �� � �� �#��������� � ����� ����� ��� ��I�� ������� � ��� ���� �� ��� ��#� ��� ��� ) �

����,

�� ��� �� �� � � � ��� � ����� � �� ( � � ���� ���� � ���� ) �����,� 6��

���#� � � �� � ������ � ��� (� ) ��� ( �� �#�� � � � ���� ����� � / ) ����� ������ ���� ) ��

�����

�� , � )

�������

�� ,� J � ���� ��� ���� �� �� �#���� ��

& ������ ����� ����� � ������� *� � �� �� ���������� �������� ��� ������� ������ � �� ���� ��� � � ������ ��� ����� J � �� � �� �������� ����� ����� ����&(��' ������� �� � �����'

�� "��� �� � � � �� �� � ������ ������ ��� �� � ���� � � � ���� ��� � �� � � � ������� �������� ��� ������ &��� � � � � ��' �� ��� � � �� � �� &�� � ��� � � � � �� � ��'���� ���� � ������ >� �������� ��)��)�� )�)� / )�)����� 6��� ��� ������� � � ���� ����� ��%�� � 9��� ��� ��� �� �� ��#�� � 9��� ���� ��� ���� � )������ ������ ��#�� � 9��� ���� ��� ���� � ��)�������� ���� �� � �1

�� / �������� ������ � ��)���� )�������2

��� / ������� )������ � �)����� )����� � )��6�� ������� ��)��� ��� �)���� ��� ������ �� ���� � � �2 �� �� 9��� ������ ��2�� / ��� / ���

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

?�� / �?������ ��?������ ����?������� �� / ��� ��

��%��� � �������� 9��� ���* ��� ���� � �����������

�� �� � ���� 5 �� �������� �; �#����� � 5� ��� � 5 � �� � � � ��� ��� ���� � ������ �� �� ��� ������������� �� �� ������� ..� ���� ��� ������� ��� ��� �� �?� *1

�����)

) )) � )

) . . )) , )� - )

) * .* ., , )) 4 .)� -*.� �)3 * )

����)) )

) ) )) ) ) )) � ) ) )) � . ) ) )) . -* - ) ) )

Page 188: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� *0

�� ������� ����� ��� �?) ����� ���� � / ) ����������

�� &��� �' ���� � / )� 6������ �� � � ��� ��; �� "��� � / � / , ����� ��� ������������ *�3*4 � )��������� ��� ��-4, � )��� �������� D�� ?&�� �' / 82 ?&�� �' / � ���� � � �2 ��� �� ) � �� ��� ?&�� �' ��

[%&�'?&�� )� �'� [%&)'?&�� )� �'�� � � � � [%&�� � )'?&�� )� �'�� [%&�� � )'?&�� )� �� )'������ [%& ' �� � ����� � �� �������� ��� 9��� ������ � ���� %& ' ���� ��� ����������%��� ��� �� ��� ��� �� ���� ������� ��� �� �� ��������� ��� � �� � I������� ��� ����� � ?&�� )� �� )'�

6��� ���������� � �� ��#�� ������� 9��� ������ �� ���� � / )� ������� � � � � ��� ��� 9��� �� �� ��������� ��� ��

���

���� ���

��� 9��� ���� �� �������� ���������� � ������� � ������� ���� ����� ��� ���� �� ���� ��� ���������� ��� ��)� � )��� ���� ���& � !' �� F������ ����� ��� ������ � ��� ���� ���& � !' / ) �� ��� ����������

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

������

�?��������

�? � � �? ��

�? ) / �

�)����

�?��������

�?

� � �? ���

�? ),� ��� ��

�����

� ���

��� ��� ��� �� � ��� )�

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

��)������

�? �,�)�����

�? �, / ��)

������

�? �,�)�����

�? �, /

������

�����?����

�� �

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

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

������

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

����� ? � � �?

���

��� �

��� �� �� �� ���� #�� �� � ���� � � )�

��� D�� � �� ��� ����; ��� 6�� %���������

�?�������

������������ #������ �� ��

������ D ��%�� � ����� � )-), #������ ���� )������ ������ �� ��� ���� ��������2����� � �� ����� )������� 6� � ��� ������ ����� ��%��� �� 5��������� ��� �������� � � ���� � ����; �� �� ��� � ����� 0 /

���

�? � � � ? ��

��� (� � � � � � (� D )� ����� �(�� � � � �(�� /

��?��)� � � � � ���+���� � � � � ������ &������ ���� ������� ),� ���� ��#�������

��)� �'�� � / ���� � � � �� �� ��� ��� ������ ���������� � ��� �������� �� � � � ��� ����

6 �� ) �� � ��� � ���� � �������� )� �� �� ��� D �� ��� ������ � ��� �������� � �� ��� >� �������� ���� � / )�)���)))) �� ��#� � / -� � / *� 0 /

���

�?���

�� D / .�

/��

�?���

�� 6 / ,�

��� ��� � ��� ��������������� #$ � �� 3 + ) �� ��� � � ��� ) � � #$�2������� / �� ����� �� / �3 +) � ) � �� �� � ��� � &�� �'����������� ����4��� / 5����� �� ��#� �2�������� �2�����5������ ��� 2�����5���� /

5�� ����� � / ���� � � � ���� � 6� � �� ��� � ��� ��������������� �� ��#�0 ? � ��? �2�������� ��

�� ��� 4��� � 5�� / ��

��#������� �� 4��� � 5�� �/ � �� ��#����

�� 0 ? � ��? �2��������� �

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

�� � 24��� / ���� &��� ������� 4.'� ��� ��� ��� �� �� &��' ��� &�+'� �� %��

25� / &��)'5� * � � � * )�5� * �,-.�)�� � � � � 43�*,-� �� ���� ����� ��� ���2 ���� 2

5�� / &�? )� ��' ?��������

��� ��������

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

�/���

�?�������

�? � � � ? ����

�� 0;� )���*!&�#'� ��#�� ������

������������� �� �� � 6� J � &/#' �� ��N����� ���� �� ��#��������

�/�����

�?�������

�?

� � �? �������

��

Page 189: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:. ��'��� ��������� '�!� �"

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

�� &�*'2 ���� �� ��� ���#� � ������� � ��� �

���� ��& ? )'� �� /�������

�/ 6 � )�

��� 7A� 0� A������ ����� ����� �� � &)4�,'� �3!3.�8 "� ��� ���� �������� ��������������� 0 /

���

�? � � �? ��

���� /

����

�? � � �? ���

��� �� ������� �-� ������

���� ����� �� ��� %��� ����� D � 6 �� I��� ���� .�( �!� �� �� ��� ��� �������� ������� ��������������� ���� ��� �� �� � 6 � ��

&�' 9�#�� �� ������� <� %�� 0 ? � � ���� 0 ? / < ��� ��0 ? �� ������� �� ���� 0 �� ����� �� �������� �� / �� ��:�� ���� S�������� ��� �������������� ������#�� ��� 0 ? ��� ��0 ? �� � � �� �� ��� �� ���� 6 D ) ����� ����� �������������� � 0 ��� � �� �� ��K������� ��&0 ? )' ? ��& � )' /&��0 ?D� )'? &�� � 6' � ��0 ?�� � �� ������� �,2 �������� � �� �� K�������J � ���� �� �� ����� ��� ������� ������� � 0 ��� ��� ������� �������������� � ��������� 0 1 �����������

6��� ��� ���� ���� �; ����� ���� �� ��� ��� �� 0 / �� � ��� ���� ��� ������ )4�� �� >� �� Q�� ����

&�' $� �� ��� � ������I� ���&��0� ' ? ���� ���� 0 ? / <� ���� ���������������� ��

��������

�? � � � ? ���

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

���� � (�2 ���#��� (� �������� �� ������#�� 0 ? ��� ��0 ?���� �� ���� �� ���������� ��0 � � "� ����#� �� � ��������� �� �� &�' �� �/ �� � �� �� ��� ������ ���� (��

�� ���� � (� �� ��#� � ��0 ��� ��� �� � 0 2 ���� 0 ? � �� ? /��������

�? � � �? �����

�� ��� �� ��#� ��&0 ? ' ��&�� ? ' / ? ���� �

>������ �� ���� / (� / �� ���0 /���

�?0 � ��� /

�����

�? �� 6��� ��&0? ' /�

������

�? ����&0

� ? �'� ��0 /�����

�? ����0

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

�? ����

�2 ������ �� ����� �� ��� ��� � ��

��� 7 � +� "� @����� ������ ����� "���� �� &)4�4'� �,!.��8 D�� 0 / ��� ��� / ���2 �� �� ��� �� ���� � � � ��� � �� 6��� �2� / �2�*��?�2�� ���)�2��� ���, ? �2�� ���&��0� ' ? ���� ��&0 ? ' / �5������ ����� ��� � (? �? ��

��#������� ��� � / 5�� ? ) ��� � / 5���� ? )2 ���� ������ ������ ���������� ���� ��)�� .���? ) / �.�)� -.)�� 6��� ��&0 ? ' �2� / �2� *��?�&2�'�� / ���&��0� ' ? ���� � ��� �� 2� / 5�������� ? )� 7��R �I������������#�� �� )4,4 ���� ��&0 ? ' ��0 ? ���� �� ��� ��� �� ��0 �8

>� ��� %��� ���; ������ ��� ��� � �� ���E��� ���� � ����������� ���� �� /0 � �2� / ��0 � ��� / � �2�� / �� � 6��� ��&0 ? ' / ��� * �� �2& *�'� / �2 * 2�� / �2�? �2�� / ��0 ? �� �

��� �� ���� ��&0 ? ����0' /0 � ��� �� ? ������ / ? &�� � ��'76/)8 ���� �� ��#�� �� &�*'�

� � �� � � ��� � � )� ��������� �� �� &�*' ��� ��� / � ? �� �����

� / �� � )

�? � � �?

�� � )

6

�� � /

�� � )�� )

�? � � �?

�� � )6 � )

��

D�� � /���

���� � /

�����

�� 6���� �� ��� ��� � � ��� ���� �� ��#� ��

�/

� ? �� � ���

�?�����

�/�����

�2 � /

���

� � ���

� ���

� � �����

�/�������

�2 ���

�� / � ? ���� � �����

�?�����

�/�������

� � ����

��

D#P��I �� ���� ��#�� � ������� ��� �� 7���������� ����� ��� $(�������& ���P����� 5���P� )4�4'� ������ ).�.)&�'8� ���� ��� ������������ � ����� �� =� Q�=����N�� 7��� �� &)44*'� *�!*-81 � ����

���

�/���

�?�����

������ D � � )�

��

Page 190: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� :

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

� ���

�?�����

��� ��� ��� ��

6 .2 �� � � ���&6 ? )� . ? �' �� ��#� ���

� ���

�?�����

��� ��� ��� �� 6 .�

��� >� �������� �� ��� ������� ������� � �5� �� **-..� �� ��#��5� / ������� � � � � ,,,,,�*�*����� � � � � *,,,,�*�**���� � � � � **...�*�**-��� � � � � **-..�� /

����

�?��

�?���

�?���

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

2 �5� / ������ � � � � ,,,,� * �*���� � � � � *,,,� * �**��� � � � � **..� * �**-�� � � � � **-.��� ��I�

��

�?���

�?���

�?���

��

�� ��� �������� ������� � 4� �� **-..� �� ��#��4� / �44444� � � � � ������ * �*****� � � � � **,��� * �**---� � � � � **--�� * �**-..�� / )

���

�?����

�?����

�,? )

���

�?���

�,?

���

�?���

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

2�4� / �444444� � � � � ������� * �******� � � � � **,����* �**----� � � � � **--��� * �**-...� � � � � **-..���

� ��I� )���

�?����

�?����

�, ? )

��

�?���

�, ?

���

�?���

�/ ? � � 6�� ��I�� �� � ���

�������� �� ����������� ������#���� �� ��� �� �����

�2 �� �������� ��� ��������

������� � �4� �� 444**-.. �� ��� ��� �� ��#� ���������

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

7���������� ��� ����� � 7&�' ���� B����C � ������#� ������ �� ��� �� ��� ��� ������� � ���� 6�����:� ������� � �������� �� �� �����)����� ��� �� �� &�'� &)4�.'� )�*!)��� ��� ���� ���������� ��� 0������ �� ��� �������� � �� &������������� )4�.'�8

&�' ���� ��&)��' / &)'���� ���� � �� �� ��#�� ����

��&�' �� /� ����&)�D' �D /

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

� ����&D' �D� 6�� ���� �; ���� ����� ��� ��� ��� ���� ��&

���' /

����&�'� F��� &�' ���� ���� ����� �� �; ����� � � � ��%�� 7&�' ���� � ����������

&' ���� 7&����' / ����� ? ���7&�' �� � � )� �� ��#� 7&8' / �8 ? �&8'���� ����� 8 ���� 6������� 7&8' / 8 �� �

!?�&8' �� � � 8 )�

&�' � ���� � �1� )� �� �1� )1� �� ��#� 7&�1�' / �1� ? 7&��1�'1�2�������� 7&�1�' / &� � �'1� ? 7&�&� � �'1�'1�� 6������� �� �� ��� �� ���� � ����� "��� � �� ��� ��� �� / �1� ���� � �� �#��� �� / &� � �'1� ���� � �� ��� 6���7&�1�' / �7&��1�' � ���1� �� � � � � �2 ���� ������ � � � ) �; ����� ��� � ��; ��� ���� >� �������� ��� #�� �� �� � / .� -� ,� *� � ��� �G.� �G.2 )G�� )G�� )G�2 3G),��G.� �G.� 3G),2 )G�� �G.� )G�� �G.� )G�2 ��G-4� .�G-4� .�G-4� .�G-4� .�G-4� ��G-4�

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

�� ��� �

��� ��� �

��� �

��� ��� �

��� �

��� �

���� � � � � �

��

&�' 6�� #�� � ���� ����#�� �� � / �

�� �

�� �

��� �

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

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

� � ) � � � . � - � , � � � �, , , , , ,) � � � . � - � , � * � � � �

��� �� �� �������� #�� � 6� �������� ���� 6 � ��2 ���I���� �#�� ����� 6 � �6�#������ �#�� ��� ��� � ����� 6 � �&�� � 6'� 6�� ���� ���� �� �� ���� � ������� ���� ��� ���� #�� � 6� 6��������� ��� �� ������ � ���� ���� ���� �6 ��

��

Page 191: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:! ��'��� ��������� '�!� �"

� 6 ��2 ���� ��� �� ������ � ���� ���� ���� 6 � � 6 �&� ? )'� 6�������������� ��� ��� ����� � ��� ����� &$�� � �� ��� ���� �� ������ B��#�7&�' / ���61�C2 �� ��� ���� �� �� ������ B��#� 7&�' / 61�����C' 0������� ������ ����� ����� �� ��� �������� � � � � �� �� ����� �� � � ���� ������� ��� ���� ��� � ������ ��� %����� 6�� �; ���� 7&�' / �1� ���� ��� �� ���� � / �� ��%��� �� �����; ��� ��� ��� ��� � � � ����� ���� /

���� � � ���I���� ���� ��� ���� / ) � �

���

� � #������ ����2 ����� ��� ��� ��� �� ���� � 7&�' / �1� ���� � � ��� ���� � �� ��

� ���� � ��>� �������� ���� ���� �� ����������� ���� 7&�' / �

���� ���� � � ) � � ��

.-,4G3��-�2 ����� ���� ���������� E �� �� �� ���� � 7&�' / .1,� ��#��� ������������&��� � )'1.�

Q��#��� �� ������� ���� ��� ���� �� ��� ������� ���� ���� ��� �� ��� � ��%��#�� �� � � ��� � � � ���� 7&�' / �1� ��� � ������ ���� �� ����� � � #�� ������ �� �������� �G.� 3G),� 3G�)� ���������� � ��� ���� &�)'� &�)�)'� &�)�.�)'�6�� #�� � .�G*. �������� � &�)�)�)' ��� ��� � &�)�)�)�.-,-,-.�)'� �� ���� ��� �� ���� ����� ���� � �� ��� �� � ��

�� 7>������ Q��� ��� = I��� ��� 6� ������ �� ���������� ���� �� &)44,'�)�,!)-3�8 �� � � �� ��#�

��� )� �

�� �

��$ / ��&�� )'���&��� )' / ��)) ? =&�� �'��� ?�&��1��',�

����� =&�� �' / �&) ? �' � �� � �&) ? �'1- / =&� ? )� �' � � ? ��� 6������� �� ������ ���������� ������������� &�*'� ��� �� �� ��� �� / ��� )� �� � �� ��#�

$

�� �

�/

����

?���� � �����

?���� � -����

? � � �? �&�� �'�

��

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

7 ��� �

��"��/

��� �

&�� � ��'��"� �

�� ����� ��� ��� ���� �������� ��� �� �� � � �� &/�'� ���� 7&�' / 7&)��'�� ��� ��� � � � � �)$ &�� �'�1��,� ��� ��

���������

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

�))?�&�� �'1�,

���� � � � �� ��

��� � � :Æ #$ M� 1� :Æ #$ M� 1� : � M� 1� : ? �� � � � � � M� 1� : ? �� #$ � � :

� � � : � �� � � � � � � � : � �� #$ � � :��

��� �� ����� ��� �� �� ���� ��� ��� ���� : � ; Æ �� ��� ��� �� :� � ; 1 &�' : � ; Æ

#$ : - ; Æ / ; � #$ ; � :Æ� &�' :� � :� /$ : � :�Æ2 ����:Æ � :Æ�Æ� �� :Æ � :Æ /$ :Æ� � :2 ���� :Æ�Æ � :Æ� &' �0 #$<�� � < #$ <� � <Æ #$ 0 ) �

��� �� -� � -A ���� -&�� ��' � -&A � ��'� � �� �� ��� �� ���� -� / -A ��� � � A�"� � �� ��#� A� � �2 �������� -&A � ��' � �� ����� -&� � ��'� �� �� / A� ��) C �� ������ � � ��� � � �� . A � �� � S�������� �� � A� �� ��� C �2 ������� ��#� �� �� . A � �� � ����� �� �� / A � �� �

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

� / � ) � . - , * � 3 4 )� ))�� ? �� / �� �� �� �� �� �� �� � �� �� ��� ����� ? �� / �� �� �� �� �� �� �� ��� �� ��� �� ��� ? �� / �� �� �� �� �� � ��� �� ��� �� �� ��

��

Page 192: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� :"

�� %�� &��� �)� � � � � �)�' / &�� -� *� �� 3� 4� )�� ))� ))� )�� )�� )�� )�'2 &)�� ))� � � � � ))�' /&�� �� �� �� )� )� �� .� -� ,� *� 3� )�'�

� � D�� ; / :� ��� M / �:� ��� ��� � / �:�&�'� �� � � � (�� 6���

�; � /������ �

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

�&:�&�� )' ? ��' * &:�&�' ?P�&�''�

������ �

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

����� � � ) ������ �� &� � )' ��(� ��� ��� � � ���� ��� ��� ��� &� � )'����������� �� �� ��� �� �:�&�' ? P�&�'� � � �� ��� ���� ��

�M�� /������ �

�M�� &�'� /

������ �

�&M�&�� )' ? ��' * &M�&�' ?P�&�''�

/

������ �

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

��� �� ��� M�&�� )' ? �� ��� M�&�' ? P�&�' ��� �������� �� �� ) ���������� �� D�� ����� �� � ����� �� �� � � � ������ �������� ������ ����� �� � ���� ��� ����2 �� � ! / �� � � � � ��� � / �� "� ��� %������� ����� �� �� ���� � : �� ���� ��� B���C ������ � / ��� ��#�� ������� ���� � / � � � / !� >� �� � �� ��� �������� ��� � ������� � ���� ��� � � / ��� / � � � / ��� � ������ 6��� �� �� ������ ������� ��� �� )��� ��� ) � ��� �� � � ���� � ��������� �:��� ����� �� ���� ����� / )��� ��� / ����) ��� / �?�� � �� � � �� 0������� � � ���� � �������� �� %�� � � ������ � � � ���� � / ��� ? � ? ) � � � � �� � � � � �� ��������� / � � � �� � )� 6��� �� �� S5 � ������� � �� ) �� � � � � � ���������� �� ) �� � � � �� �� )� &�� �� �������� � ��� ���� �� / � �� ��#� � �� )2 ���� � / ( ������� ! / (�'

=�������� � � ������������� ���� � � ��� �����#�� � �/ ! ��� ��� �/ ���� ���� ��� ���� &�/'� ��� ��� ��� �� �� ������� �� �� ��� �����

�� D�� � ? ����� ��� �������������� �������� ������� � $ &(�� � � � �(���' ���������� � ��� ��� ������ -�? � �� ��� � � ������� ������� >� �������� �� (� / (� /(� / - ��� � / �))� �� ��#� �?) / �)�� �?� / �).� �?. / ��.� �?- / �..� �?, /...� ��� �?* ��� �� �����2 �� �������� �? ?) �� ������� ��� �? �� ������������ �������� ������ ���� �� �� ��������� �� �? / &(� � )� � � � �(��� � )'� ��� � ��� � ? ? ) / � ? � 6��� �� <& ' �� ��� ��� � ��� �������� � $ &(�� � � � �(���'���� ��� �? � �� ��#� <& ? )' / <& '�� > ��������� ��� �������� � < ���� ����� � ��� ���� ���� %��� �� ) ������� ��� �� <&(� )� �'�

6�� ��� �� � ���� ������� �� �� ������ ��� ��� ���#���1 � �� �������� ������������ �������� ���� <�� <�� � � � � ��� &� � )'����������� �������� ���� � �������� ���� ������� � ��� ���� E �� ����� ��� ���� �� ����� � ����� ( � )����������� ���� ���� ��� � ��� ���� E �� ����� ��� ���� �� ����� � ����� ��

�� &�' � ���� ��� ���������� ��� � (�� (�

� � � � (�� ���� ����� ��������

��� ��� �� ������� ���� (� �/ (��� 6��� ���� / )?����&�� � � � � ��(�

��)� �� � � � � �'�&"� � �� ��� �� ���� ���&(�� � � � �(�' �� ���� ���������� �; �� � ) �� �� ��������������'

��

Page 193: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:* ��'��� ��������� '�!� �"

&�' S��� �� ��� ��� �� � / �� � ���� ������ ��� ������ � ������� 4�� 6������ �� ��������� �� ��� ��� ���� � �� �������

� ������������� ��#����� ���������� ���� ��� ������2� 2�

� >� 6����� 5� ��� � / � � ) ��� �� / � � � / � / )� >� 6����� Q� ��� � / ���� �� / � � � / � / �? )�

�� �� � � � �������������� �� ��� � ���� � ��� ������������ � ��� � �� �� � )��� � �� � � � � ���� ������ ������ � � � �� �� ���������� ����� ��� �� ��� ��������I�������

�����

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

�� �� �� ���� ��� ������������� �� ������� �� ��� �������� ��I�� ����������

�� �� ����� � ��� ��������I���� � &/#'1

�25�� / <&��'

�� )�? <&����'

�� ��? � � �?

<&��'

6 � )��

7��� 9� >� ��������� �� ���������� ���� �� &)43-'� 4)!4�� 6�� ���; ��������� �� � � � � ��� ������ �� ��� #������� � ������� �� � � �� �� ��� �� ������ �25��� ��� �����

������

��� � � 6 ��� �� I��� >� �������� ���� / )�

� / -� �� / .� ��� �� / �� �� ��#� /�����

�?�����

�/ � ? )�8

�� &�' 6�� ���������� ��� � � #������� ��� ������ � � ����1 & �� � � � � �' /&)� -� *� -� )'� 6�� �������� ���������� ��� & �� � � � � �' / &)� *� 3� 3� �� �� �'� ������ �������� ��� & �� � � � � ��' / &)� )�� .�� ��� �� � � � � �'� 6�� ���������� ��� ���.� ��� ��� ����� #������� )� ������ ��� ��� �; ��� ����2 ���� ������ ������ ����; ��� ��� ��� �� ��������� ��� ����� �� ��� ������ � �� ��#� & �� � � � � �' /&)� 3� )3� )�� �� � � � � �'� >������� ��� ���� ���� ��������� ���� � ��� ��������� ����� & �� � � � � ��' / &)� ��� ,-� .*� �� � � � � �'�

&�' ��)�� .)�� * �)�� ��� �)� .�� .)� * ��� )� �� .� * �8��&' � �

���

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

������ �� �; �#����� � ���� ��� � �� ) � �� �� �� ��%�� ��) / �� 6����������� ��� �������� �� 6����� 5� ��� � ���� �� /

�5���

&�' 6�� ��������� � ��� �������� �� �� � ��������� ������ ������ ��� ����� ��� � � � � � � )� + � � � 1� �� ��� � ��������� ������ &"� �� ��� #����� ������� �������� ��� � ���� ������ ����1 ��� �� � #$ ���� ��� � #$������ ����� ���� ��� �� ���� ����� /

���

�� ���� ��� �� ������� 4.�'

&�' ����� � )-*-)2 )���� � )-*-�2 ))��� � )-*.�2 )���� � )-*��2 ).��� �)-*)�2 )-��� � )-*��2 )�)�� � )-,��2 ).)�� � )-,)�2 )-)�� � )-,��2 ).��� �)--)�2 )-���� )--��2 )..��� )--��2 ��� ��� ������ �� ���� )-.��� )..)��

�� 6�� ������� ���� �� �� �� D�� ��� 7���������� � &)444'� �,,!�**8� ���������� ��� ��� ��� ������� ������ �� � �������� �� ���������� ������ ���� ���� �#� � ������� D�� Q&�� &� !' �� �������� #���� ���� � /

���

��� � � !�

��� ������

�� ��� � / � �� � � &� 6��� Q&�� &� !' / � ����� �) ! & �2

��� Q&�� &� &' / Q&�� &��)' / )� ��� Q&�� �� !' / Q&�� � � )� !' �� ! � �� "���� � & ! � �� �� �� �� Q&�� &� !' /�#

� � Q&� � )� &� �'Q&� � )� � � )� ! � )'� ��� ����� ���� ����� ��� 6����� 5� &0�� ��I� #��� �������� � ��� ������5��� ���� Q&��)� &� �' ������������ ��������� ���� � �� ����� ��� ����� �

������� �� ) ��� Q&�� )� � � )� !� )' ������������ ���� ���� ��' >������ ��� ��������� �� Q&�' /

��� � Q&�� �� !'�

"� ��#� Q&�'� Q&)'� Q&�'� � � � / �� .� ,� )�� �*� 4*� ,,.� ,-*)� )����4� .�)3.,-��34��,,�4� � � � 2 Q&)��' % .���44 � )������

��

Page 194: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� ::

�� 6�� ������� �������� � � ��������� ����� ��� � � ����2 �#������� ������������ ������� �� �������� � � � ���� ��� � ��������� ������ 6� � ����� ����� ��� ����������� �; �#������

&�' �� &0��0�� � � � �0�' �� ��� ��I� #��� � � � ����� ���� & �� �� � � � � �' ����� ��I� #��� � � ��������� ����� �� � / 0� ��� � / 0� ? ���� ��� ��� � � �� ��#������� �#��� � � & �� � � � � �' ������ �� &0�� � � � �0�' �� �� ����� �������������� %��� � ������������ 79� >� �������� �������� ���� ��� �� �������� � ������� �� '������ ����� &)4�.'� )�.!)�3�8

&�' �� ��� ���� � ������ 4*&�' ���� ��� ������ ����)� )����� ���-�� �)���� ���.�������� ��)��� �.���� ��.)�� �-���� ��*��� ��)��� ������ �))��� ���)�� ��)��� ��,��������� ��))�� �)���� ��-��� ��.��� �)�)�� �).��� ���)�� $��� ���� &0�� � � � �0�' ���������� �� ��� ��� �� &0�� � � � �0�' �� ��������� � �� ��#� � ��N����� ��� � � ����� ������ ��������������

� =�������� �� � � ���� � $ &(�� � � � �(�' �� �� ��� ��� � ������� �� 6��� �������� � #�� � � - �� ������� ���� ������ � ��� �������������� ������������� �� � � � ���

6�� ��� ������ �� ��� ��� � ��� ��� ���� �� ��������� �� ��� ����� ������� ��� ������������ ��� 5���$��� �� ��� �� 6��� �� A �� ��� ������� ������� � ��� �� � �� ��� �������� ������� 1� � �� ��#� ���� � � A ������� -� � -A� ����-& + �A� * ���' � -� >� �� -� / -A � �� �� %�� �� ������� � 2�A ���� ��������� ���� �� ���������� ��� ��� ����� ���� �� ���������

���� �� �������� > &�' / ��� ? ��

���&)� �' ? � � �? �&)� �'� ���� =&��� � � � � ��'�� �����%�� �� ������ � ������ ������� �� � � � �� � ������ �� 6� � �� %�� ?&�' /�� ? .��&)� �' ? ��&)� �'�2 @&�' / �� ? ��&)� �' ? ��&)� �'��

&�' ����� ��� �� = �� �; �#����� � � ��������� ����� ���� ��� ����������� =&��� � � � � ��' / )#$ �� � ) � �� / �� � � 6������� ��� � ����� =&�'� ����� J���� � ����� ��� ���� ���� ������� ��� ������ � ������� 4*&'� ����� ����� � � ������ � ���� �� ����� ��� �������������� ���� ��� �����������&���� ��� ��������� � ��� %��� � �����������'1 �.�)��� �.�)� .��� .)��� �.����#�� =&.� �� A� '' / .�A' � �A' � .A' � .�' � A' / .�' � A'�

Q� F� ��R �I�������� ����#�� ���� �� �� %�� ��� ���������� � #�� �� ��������� =&�' �� ����� ���� =))1&) ? D', / & � ? �D? � � �? �D

�'1&) ? D'�� S�� ����� ���� @&�' �� �� �; �#����� � � ����� ��� �� �� ��� � ���� � #������������ �� &)?D?D�'1&)?D'� / & �? �D?� � �? �D�'1&)?D'� ������� ���� � / ��.� � /

�����

�? )� ��� �� � / �� ��

J � ��� ���� � ������� ���� ; ����� �� �� � ������ �� �������� >� ����������� � ���� &) ? ,D ? ,D� ? ,D�'1&) ? D'� ��� �� ���� ��� ����� ��� �� ��%#� #��������� ��� �� ��, / �2 � � �� �; ��� &) ? *D ? )�D

� ? )�D� ? ,D�'1&) ? D'������ ���� %�� ���� ����

���� &�' ���� � �������� ����������� ��������� � ������ � �� B2 ���� ����� �������������������� ��� ���� ������ ��������� � ���� ��� �������������� ������������� ��� ������� �������� D�� B � ����� � ��� � ������� � ���� ��������

&�' 0�� ������ � ������ � �� B � �� ����������� � ��� �����������2 ���������� ������

�� �������� � ,,,,�)))� �� 0� �� ��� ��� � ����������� �������

�� ������ �� ��� ����� ������� �� �; �#����� � ������ ���� 0��� - 20��

�� ��� ��#�� ��������0� / �������20� /20�*���������20� /

20�*��������

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

��' / �������2 ��� 0��� /

20� �����������

��

Page 195: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:- ��'��� ��������� '�!� �"

&' J� 6����� Q �� �� ��� �� ���� 0� / �4���� D�� � / �����

�? � � � ?�

����

�?�����

�� ����� �? � ��� � � � � � ��� � ��� �2 ���� ��� / � ? � �� ��� ��� ��

������ / �� �� � � � � ��� / �� > �������� �� ��#�

��� � ? �� � / ��� ? 7��� �8

�? � � �?

��� ? 7��� �8

�? ��� ? 7��� )8

)

��

6������� ��� ��; ��� )�������7�����8� � � � � �������7���� �8� �������7��� � )8,�� �������������� ����������� �� � ��������� ����� �� ������ \��: �� ����������� ��#� ��� / � � )� � � � ��; ��� ���� ������� ��%������ ���� ����� ���� ��������� ��� ����� � #�� � &����� � � � ���'� �� ������� )���)!),&�'����� D�� 5�� �� ��� %��� �������� � � ��; ��� ���������� �� �����1 >� ��������� ������ � / ������ � � � ��� �� ���������� ����� ����� ���

�%��

�� � ��� ��

������� � � ��� )� � �� �� ��� ������� ����� �� ���������� ���� &��������� ) � �'�>� �������� �� � / �)�))�) ��� � / �� �� �������� ��� � � ��� �)�)���� �)��)����)����)� ���))��� ���)��)� ����)�)�

7��� J� D������R�� �!�* �� ���� � &)4�)'� �-,!�,�2 � ��������I���� ����� �� ������� � ������� �� 5� 0����� � ��� ���� &��������� H��#� F����� )44�'�6����� 3�)�)�8

��� 6�� %��� ������� �� ��� ���� ��#� ��� ������� �������� 76� $� A��� ���A� 0� A������ �� &��� ����� ��� &�' �� &)44�'� -)�!-�*�8

-����� J�������� ���� ��� ����#���� ���� ��� B)������C � ��� ��������������� %��� ������� � ������ � &������ ��� ������� ������� �� �������� ) �������' ������ � ��� %��� �� ������� � ������ �� =� ������� ��� $� ��� ����������� A���!A����� ������ � ���� ��������� �������� ���G� ����������� � ����7���������� �� &)44�'� ))!�42 � ���� ����� &����� ��� , &)443'� )�)!)�*8� H��D�� ��� ��#�� ���� � ���� ������� � ����� �� ��� ��� ��� ����� � ����� ������� ������� 7F������� 43G* &H��#� =���� )443'� * �����8�

��� 0#��� � ���� � �� � ��� ���� � ���� � ����� �� ��� ���� 0; �#���������������

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

����� ��#���� ���� � �� �� � ����� ���� ������ � �2 � � � � � ��� �� ��� ���� ���� � ��� ��������� � ��#�� 7��� �� ��� 9������ ��� A������ '������ ����� ���&)44�'� ,,!,��8

6�� ���� ��� �������� ������ ��� ���� � / � ��� � / .� ���� ������� ��� ������ ����� ������� � � ��� �������� ��� ��� ��#� ���� ����#�� �� � / - ��� � / ,���� ��� ��� � / * ��� ���� ��������� ����#��� 6�� ��� &�� �' / &)�� *' �� ���������� �������� �� ���� ��� �������� � � ��#����� ��� �� ������

���� D�� ��� ��N������ �� &�(?)' �� )� �� � � � � (� )� �� � � � � (� � � � � �������� �(?)�����2 �� �������� ��� ��� �� ( / . �� &�).*��,*)-,�.-*�.,)�-'� 6��� ������� �� ) ? � � �?( /

�����

��� ������#��� ����� � �(? )� 7�� +$��� ��������,�� �

������ )� &)3)�'� )*!-3�8

���� 6�� ��#�� � ���� ���� � ���� � � � � � ���� �� �� �������� �� .� ���� ��� ��� ��#����� ��� � .���������� �� ��� )� �� .� -� ,� *�� 6�� � ���� � � � ��#��������� �� ��� � ���� � 0 ������ �� ��� � ��� ������ ����� K�� ���� �� �� ����� �� )�4�4�*�.�� �� �� ������ &���� � � � ���' �� �; �#����� � &�� � � � �����' � � �� ���� ��#��������� ��� &��� � � � ����'� � ��� ������ �� �3-��,3��))�3-��

76��� ������ ��� %��� ��#�� �� )3,4 �� Q� =����� ���� ����� ��� � ��������� ���� ����� � ���� ��� ��� ��2 ��� ��*����� ������� �� ����+�����,��� �

��

Page 196: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

'�!� �" ��'��� ��������� :'

&)3-4'� �-2 �� &)3,�'� )),2 ������ �� ���������� �� �� � ������ &�' � &)3�)!)3�.'� *.!)��� ���������� ������� �� ���� �%����� =����:� ����� ��� � �� ��F� +��#��� ��� 9� 6����� �� ��� �� ������� ��� 0 ������ �� ��� � K2 ��� �� ���-����� ��������� .��/����� � �0�*�������� ��� �������� ��� ���� � &)33*'� -4!,.2 P0� D ��� -+��+������ ����+�����,��� &)34-'� )�.!),)� J������ A� Q5�� ���=���� "� =����� � �� �� ������ ���� �� ������ ������ �������� ���� � ���� ���� �� ������� ��� �� K�� �� ���� ��� ��� ���� ��� � ���� � �� ��� ��

&(� )'W���� 7'��� '����� � � � '����

�� 8 ���&���'�

��������

&'�� ? '��'�

����� ��� / �)1&'�� ? '��' ���� � �/ 2 ��� / �)1&�'�� ' ?�

������ )1&'�� ? '��'2 ���

����������1 ��������1 ��� �� ����� � &)443'� -.�!--4�8�� >��� �������Q����� �� D:#����+������ ��� ����+���������� � &)34-'� )*-!)*,�

���� ���� ��� 0 ������ �� ��� � K� ��� �� ����� ���� ��#� ����� �������� �������� ����� � ��� )� � � � � *� &������ F����:� ��� ��� ��� ��#����'� �� � .� � )*3����� .���� ��������� �� � �,��3� ,�-� ���� ���� ��� �������������� $ �� ��� �� ������� �� � � �� ����� �� ��� ���#��� ��� � / -� "���� / � ����� ��� )���,,���3��W ��#����� ����� �� ��������� &���� � � � ���' � �� ������� �� &�� � � � �����'� ��� ���� ���� ���� ,���� �������� ���� ��� ������� ��� ��������� )�-�

"��� � 3 �� �� ����� ������������� �� � ������� �� J� +���� �� '����������� ��� &)44.'� )-)!),�2 ��� ��� 9� @ ������� �#�� �� '���� ����� � &)44-'�,43!*�-1 F � ��� .��������� ��� ��� B�������� ��� ����C ������ ����� �� /&�� ? Æ' �� �� �� / &�� ? Æ�' �� �� � � Æ� Æ� � �1�� ��� ������ Æ / Æ� � ���&Æ� Æ�' �� � Æ � Æ� �/ &� � )'1� � &) � Æ � �1- ��� Æ� / &� � )'1�' � &Æ / &� � )'1� ���) � Æ� � �1-'� >� �������� ���� � / 3 ��� �������� #�� �� � &Æ� Æ�' ��� &)� )'�&)� �'� &)� .'� &�� )'� &�� �'� &.� )'� &.� .'2 ���� � / )) ���� ��� &)� )'� &)� �'� &)� .'�&)� -'� &�� )'� &�� �'� &�� .'� &�� ,'� &.� )'� &.� �'� &.� .'� &-� )'� &-� -'� &,� �'� &,� ,'� 6������� � ��� ������� ���� #������ &�� Æ' �� � � � � ��� ) � Æ � �1�� ��� ���� ���&��� Æ' � &��� Æ

�' �� �#��� �������� ������ �� �������� ��� ����� 6��� ��������� ������ ��� �������� � �� ��� �� 0 ������ �� �� �� 6����� ��.�-��A� &6���� ���� � ��� �� � &��)'1� ���� ��� ������� ������ ���� � �� ��� 6�� 0 �������� �� �� �� ���� � ��#� ����� �������� ���� � / 3� � � �� ���� � / )��'

���� "��� � / ) ��� ��� &���' �� ���#���2 ���� � / � ����� �� � ���2 �������� ��� ����������� ��� �� ���� � / -� ������ &���)))���...����).).' ���&���)))����...���).).'� "��� � ,� ��� ��� � ����������� ������ �� ���������� ��� ���� �� �� / &�� ? Æ � )' �� �� �� / &�� ? Æ� � )' �� �� ��� &Æ� Æ�'�� �������� �� � ? . �� ��� ���#� � ������� ����� � ��� ������� ���� #������&�� Æ' �� � � � � ��� ) � Æ � &� ? .'1�� ��� ���� ��� &��� Æ' � &��� Æ

�' �� �#���� ����������� ������ �� �������� ��� ����2 ���� %�� �� 0 ������ �� ���

F������ � ��#����� ��� � ��� ������������ ������ �� ��� )� � � � � ��)� �� ������ �� � ��#����� ��� � ����������� ������ �� ��� )� � � � � �? �� )���� � ��� ��� � ��� �� � �� �� � �� �� ��� � ����� �&<' /

���&�� � � � <������ )�&!'� � � � � �&-', / &)� � � � � ).'2 ���� ��� !� �&<'���&<' ��� ��� ���� �&<'?! /! / �� ��� ��� ���� )&! / �' � &! )', � � / �� ����� � / �&��� � � � � � �&��� 6��#�� �� � �&<' ���

��6&�' � � � <� ��� ������ ���������� �� < � �� ��� �� ��� .)������� � ����� �� 9������ ����� 6�� ������� ��� &)��4��3� 44�4�� �3).�4*�,�,��3� �3,,*�*� *4�,�3� )3���*3� �,).�-� )).��.*� .*)��-� .33�-�� ,)*3�� .)�.-��

��

Page 197: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

:; ��'��� ��������� '�!� �"

)4*,*� 4�)��� 4)*3� ,3�-3� )))4*� ���3� �� 3�*3� �-4*� ---� .,*� .*3�� �� �� �� �*� -'�� � / &�� � � � � �4'2 �� � ��� ���� ��� �� % -��*4 ��� ��� #������ �� % 4��*3�

-���� � ����� K �� �� �� ������ �� ��� B����C 6��� ��� ������� ��� �� � ��������� � �� ��� ��� �� � ��� � � �� &)�����3� 44�4�� �3.43��� ,�34�3� �3*34*����.-4*� )�3�)�*� �,,.��� )))3..*� .,3.*3� .�3�-�� -.33�� .)�4,*� )*,-3� 33).�� 4����,��33� )))4*� ��*-� �� �3�3� �-��� ---� .,*� .*3�� �� �� �� �*� -'2 ��� ���� ��� #������������� � ������������ -��., ��� 4�**��

Page 198: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

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

'()* +* �*,)- )*./0 /)1)/2 .3 + 4+5) 63*.+�*�*5 + /)7)8+*. )-)/6�2) 2)) +723 .() ������ .3.(+. )-)/6�2) 13/ 19/.()/ �*13/:+.�3*; �* +*2<)/ 4+5) �2 *3. �*,)-), ()/) 9*7)22 �. /)1)/2 .3 +.34�6 *3. �*679,), �* .() 2.+.):)*. 31 .() )-)/6�2);

��*3:�+7 63)Æ6�)*.2 �$;�� ��/92=+7 19*6.�3*� ">��" �"���;�� ��/92=+7 19*6.�3*� �!��" �����;�� ��+6+97+0 19*6.�3*� �!��" �����;� �2�,)<+02 29:� �!; �6�/67) /+.�3� � "� �$ �? �@;� �+=+5� 19*6.�3*� �!��" �����; �2(+,3<� "?;

�944)/ 2(+,3<� "?;

�6.�8) A�.2 "�;�,B+6)*. ./+*2432�.�3*2 "@�"$ �!;�(72<),) �9,374( @C;�7.)/*+.�*5 63:A�*+.3/�+7 *9:A)/

202.): > �$;�*+702�2 31 +753/�.(:2 #�@ �@ �$ �>;

�+7+*6), .)/*+/0 *3.+.�3* #";�+2)A+77 �C;�+2�2 31 8)6.3/ 24+6) �C �";�+2�2 .()3/): �#;�)6=)*A+6( �,<�* �3/, @;�)77:+* ��6(+/, �/*)2. ">;�)/*3977� D+6E9)2 �F D+=3A F D+:)2�

��� "C;��*+/0 ./)) /)4/)2)*.+.�3* 31 ./)) �$;��*+/0 8)6.3/ 24+6)2 �C �";��*3:�+7 63)Æ6�)*.2 " ��;

5)*)/+7�G), ��;�*)E9+7�.�)2 13/ @!;

��*3:�+7 *9:A)/ 202.): ��� �3:A�*+.3/�+7*9:A)/ 202.):;

��*3:�+7 ./))2 C�$ �$;��.*)/ D+:)2 ��6(+/, ?;��.<�2) :+*�497+.�3* @$;�337)+* 13/:97+2 �#;�39*,), 63:432�.�3*2 "C �!;�96= �+/2(+77 '�7A)/. �!;

�+� �*5 � � @C;�+7+A� �95)*�3 �?;�+*3*�6+7 A+2)2 �C �";�+/3* D+6E9)2 #�;�(+2) �(�77�4 D3(* ""�"� �? #@;�(�*)2) /�*52 �?;�(3/,2 "! �!;�(9*5 �/+(+: �+* �3*5 ��*5

� � @C;�7):)*.2 �)3/5) �/+*6�2 �#��@ �# @# @@;�7�E9)2 �";�37)- 3/,)/ @;

�3:A�*+.�3* 5)*)/+.�3* "�"? �@��" �@;�/+0 63,)2 13/ ?�"?;(3:35)*)392 "!�"" "C�"$ �?��>

#" #@ #$;*)+/�4)/1)6. ""�"$ �>;4)/1)6. "@�"$ �!;

�3:A�*+.�3*2 "��C;31 + :97.�2). �@;<�.( /)4).�.�3*2 ��� "";

�3:A�*+.3/�+7 *9:A)/ 202.): C �$ �"��� �$;

+7.)/*+.�*5 > �$;5)*)/+7�G), ��;

�3:47):)*. �* + .3/92 �";�3:47).) A�*+/0 ./)) �>;�3:47).) 5/+4( @C;�3:432�.�3*2 ��� "" �@ �?;

A39*,), "C �!;�3:4/)22�3* 31 + 2). �� �� @@;�3*.�*5)*60 .+A7)2 "? �";�3/) 2). �* + .3/92 ����� ��;�/�AA+5) �@;�/322��*.)/2)6.�*5 2).2 ��;�/322 3/,)/ �!��@ �� @C;�067) 9*�8)/2+7 31 63:A�*+.�3*2 �@;�G)/*0 �+/7 #C;

�+*( /+*�536 @C;�+0=�* �+8�, �,<+/, @! @C;�) �3/5+* �9592.92 ";�)7.+ 2)E9)*6) #C;�)/�8+.�8) ��;��+63*�2 �)/2� '+//)* @C;��:)*2�3* 31 + 8)6.3/ 24+6) �C;�3:�*3)2 �@;�9+7 63:A�*+.�3*2 ��� �C��$ �>;�9+7 2). �* + .3/92 �����;�9+7 2�G) 8)6.3/ �#;�9+7�.0 �� @@;�83H/I+= �.+*�27+8 �C;

�+,)2 �).)/ �)**�2 "C #C;�(/7�6( ��,)3* ������ ���� ? #�;�*,�+/39*, 2<+42 �!;�*,3�3/,)/ "# �>;�*5)7 �3*/+, '3715+*5 @C;�**2 ()3,3/) �(/�2.�+* #C;�/,J32 �I+7 �F �+97� ">;�97)/ �)3*(+/, �������� ������ F

����� ������ 6�/69�.2 @C @$;

@>

Page 199: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

-. ���� �� �� �����

�)*�6()7 �3A)/. �322 �@;��/2.�)7):)*. 2<+42 "C�"$ �!;�70) �+�*.)��+/�) �+:�77) @$;�/+)*=)7 �8�)G/� � ����� �������� �>;�/+*=7 �I).)/ @�;

�)*)/+.�*5 19*6.�3*2 �> #C;�)*7)- 3/,)/ >�"� "C�"$ �?��> ##;

�/+0 4+.(2 �";�373:A �373:3* '371 � �@;�/+(+: �3*+7, �)<�2 � � @C;�/+0 �/+*= A�*+/0 63,) ? #! #> @$;

63,)2 13/ 63:A�*+.�3*2 ?�"?;�/�, 4+.(2 ��� �@;

�+:�7.3* '�77�+: �3<+* 6�/69�.2 ? #C;4+.(2 �! #?;

��6=)0 (3:+2 �9.7)/ "C #C;��7A)/. �+8�, A+2�2 .()3/): �#;��7.3* �*.(3*0 D3(* '�77�+: �" @!;�3:35)*)392 5)*)/+.�3* "!�"" �?��> #@;

26():) ��� "! "C�"$ �> #" #$;�3:35)*)392 4370*3:�+72 �#;�9/7A)/. �7)** �3<7+*, @$;�04)/5/+4(2 "?;

�*.)/*). �� ��� �C;�2�*5 �/*2. 63*K59/+.�3*2 �C �" �?;�.)/+.�3* 8)/292 /)69/2�3* "��"# �>;

D+6=23* �/+,7)0 '+//)* @$;D)*=0*2 (3:+2 �/*37, "";D37�8+7, �(�7�44) �F �+97 ,) ��B3� @$;

�+.3*+ �097+ � 4.�:I+7�2 �+7:+G� ">;�)0A3+/, "!;�*+42+6= 4/3A7): $;�*9.( �3*+7, �/8�* � � � �8 �?;�3/2( D+:)2 �; �?;�/92=+7 D32)4( �)/*+/, ">��!;

19*6.�3* �� ">��" �"���;19*6.�3* �� �!��" �����;��+.3*+ .()3/): ">;

�)6= �<) @C;�)(:)/ �)//�6= �)*/0 @ �! #C;�)-�635/+4(�6 5)*)/+.�3* #�$ "C�">

�@��$ �> �" #$;��*,2./L3: �)/*. �)**+/. �+*�)7

�#��@ �# @C;��*=), 7�2.2 �$ �>;��*9223* �+*2 �8+*.) @#;��426(9.G �)0:39/ �+97 �?;��9 �(+3��*5 � � ?;�3347)22 5)*)/+.�3* ? �@ �$ �? #! #@;�38I+2G �I+2G7I3 �� @!;�96+2 �/+*M63�2 I�,39+/, �*+.37) @$;�L9*)A9/5 �)�*G �>;

�+6+97+0 �/+*6�2 �3<)/A0 "> �# @!;19*6.�3* �� �!��" �����;

�+./�- :97.�47�6+.�3* #�;�+.29:3.3 �+=3.3 � � @�;�6�+/.(0 �+8�, "";�6�+0 �/)*,+* �+:�)* @$;��,,7) 7)8)72 63*B)6.9/) #C;��*�4792 :+./�- :97.�47�6+.�3* #�;���� ��;�3*3:�+72 �#;�3*3.3*) �337)+* 19*6.�3*2 �#;�3/ �32() ���� ���� �>;�97.�63:A�*+.�3*2 ��� "C�"$ �@ ��;�97.�2).2 � �C;

63:A�*+.�3*2 31 ��� "C�"$ �@ ��;4)/:9.+.�3*2 31 # "#�"@ �> �! �?;

)+/�4)/1)6. 63:A�*+.�3* 5)*)/+.�3* ""�"$ �>;

)+/�4)/1)6. 4)/:9.+.�3* 5)*)/+.�3* "@ �>;�B)*(9�2 �7A)/. ?;3<()/) ,�N)/)*.�+A7) 19*6.�3* ��;

/,)/ �,)+7 ��; /5+*�4�4) 3/,)/ "#;

�+/.�.�3*2 �?;�+.(2 3* + 5/�, ��� �@;�+0*) '�77�+: �+//�2 > �?;�)/1)6. 63:A�*+.�3* 5)*)/+.�3* "@�"$ �!;�)/:9.+.�3*2 31 :97.�2).2 # "#�"@

�> �! �?;�� �� � "� �$ �? �@;��+*3 "! �!;�7+�* 6(+*5)2 "!;�7+0�*5 6+/,2 �@;�3�*23. �39�2 �@ @$;�370(),/3* "? ��;�370*3:�+7 �,)+7 �#;�32.3/,)/ ./+8)/2+7 �$;�/)3/,)/ ./+8)/2+7 �$ #�;

��:97.�*3:�+7 63)Æ6�)*.2 �!;��*3:�+7 63)Æ6�)*.2 "@ �$;

�+,):+6()/ �+*2 19*6.�3*2 ��;�+*= �> #�;�)+, �3*+7, �),/�6 "C #C;�)69//)*6)2 �C #!�#�;�)69/2�3* "!;

8)/292 �.)/+.�3* "��"# �>;�)69/2�8) 63/39.�*)2 "C;�),()N)/ �+0:3*, �332 @!;�)O)6.), �/+0 4+.( �?;�)597+/ 237�,2 ��;�)�*537, �,<+/, �+/.�* �������

���� �� ��� ����� ?;�)�22 ��6()7 @C�@$;�)47+6):)*. 2)7)6.�3* 23/.�*5 �>;�)8)/2�3* 31 43<)/ 2)/�)2 �>;

��

Page 200: Art of Computer Programming - Volume 4a (Knuth)nbaloian/cc3001-02/Libros/Algoritmos y... · 3 * r ( f k # $ ) 06*, !.!i! 6m1 f 8 ... x 44 4 6

���� �� �� ����� -

�)8378�*5 ,33/ 4/34)/.0 ? �>;26():) P�� ?�"! "C�"$ �$��>;

�3A�*23* �3A)/. '�77�+: @$;�33. 31 9*�.0 �!;�3<�)6()73* 13/: �$;�96=2+6= K77�*5 $ �$;�92=)0 �/+*= �!;�9G2+ �:/) Q37.I+* @�;

�+8+5) �+/7+ ��+*) #C;�6(L9.G)*A)/5)/ �+/6)7 �+97 "> @! @@;�(+,3<2 "?��@ �"��#;

31 A�*+/0 2./�*52 �@;31 29A69A)2 �#;

�(�)7,2 �+* �)+9:3*. #C;��A7�*5 7�*=2 �$;��,)<+02 29: �!;��:R3)2 �)/)�/+ D32I) �+*9)7 ,32 �+*.32 �?;��:47)-)2 "?;��:47�6�+7 63:47)-)2 �� @@;��:47�6�+7 :97.�63:47)-)2 �#;��G) 8)6.3/2 �� �#;�4/)+, 2). �* + .3/92 ����# ��;�.+6(3<�+= �/G)53/G #C;�.+*,+/, 2). �* + .3/92 ����# ��;�.+*13/, �/+4(�+2) �� ���;�.+*7)0 ��6(+/, �).)/ "#;�9A69A)2 �" �#;�<+44�*5 <�.( .() K/2. )7):)*. "C�"$ �!;

+=+5� )�B� � � �! @";19*6.�3* �!��" �����;

+*5 �3*+7, +3�+* � � ?;+//0 �+2.3* @$;)/*+/0 2./�*52 �? @C;)/E9): 7/0 �@;3=92(�5) 3/�(�,) � � @�;343735�6+7 23/.�*5 #C;

L3/L3= I�8+ #@;3/92 �,�:)*2�3*+7 �!��# ��;/)) 31 732)/2 �>;/�+*57)2 �!;/�+*597+.�3* �$;/�) >;

�*�. 8)6.3/2 ��;�*�8)/2+7 6067)2 31 63:A�*+.�3*2 �@;�44)/ 2(+,3< "?;

8+* Q+*.)* �/)*, D+* #!;�)6.3/ 24+6)2 �C �";

'+72( �:3.(0 �3A)/. �.)4()* > #$;'+*5 �+��9* � � �! ��;'+*5 ��*5 �+*5 � *I)) � �! ��;'(�447) �/+*6�2 D3(* ')72( ��;'�),):+** �3957+2 �)*/0 �!;'�71 �)/A)/. �+97 ? �?;

��*3:�+7 63)Æ6�)*. "@ �$;Q+*.)* �/)*, D+* 8+* #!;

��