13.10 Éè¼ÆÒ»¸ö»ØËÝËã·¨À´Éú³ÉÊý×Ö1,2,¡,nµÄËùÓÐÅÅÁС£
ÊäÈ룺Êý×Ö1,2,¡,n
Êä³ö£ºÊý×Ö1,2,¡,nµÄËùÓÐÅÅÁÐc[1,¡,n]ÏòÁ¿ 1. for k ¡û1 to n 2. c[k] ¡û0 3. end for 5. k ¡û1 6.while k¡Ý1
7. while c[k]¡Ün-1 8. c[k] ¡ûc[k]+1
9. if cΪºÏ·¨µÄthen output c (and goto 12) 10. else if cΪ²¿·Ö½â then k ¡ûk+1 11. end while 12. c[k] ¡û0 13. k ¡ûk-1 14. end while
14.7 ¶Ô¶þ·Ö²éÕÒËã·¨½øÐÐËæ»ú»¯£¬¼´Ã¿´Îµü´úʱ£¬Ëæ»úÑ¡ÔñʣϵÄλÖôúÌæËÑË÷¿Õ¼ä¼õ°ë£¬¼ÙÉèÔÚlowÓëhighÖ®¼äÿ¸öλÖñ»Ñ¡ÖеĸÅÂʶ¼ÊÇÏàͬµÄ¡£±È½ÏÕâÖÖËæ»ú»¯Ëã·¨Óë¶þ·Ö²éÕҵıíÏÖ¡£
ÊäÈ룺n¸öÔªËØµÄÉýÐòÊý×éA[1¡n]ºÍÔªËØx Êä³ö£ºÈôx=A[j], 1?j?n, ÔòÊä³öj, ·ñÔòÊä³ö0
1. low¡û1; high ¡ûn; j¡û0
2. while(low ?high) and (j=0)
3. mid ¡û ?( low+high)/2? / mid¡ûrandom(low,high) 4. if x=A[mid] then j ¡ûmid
Ïà¹ØÍÆ¼ö£º