¡¡
¡¡¤³¤³¤Ç¤Ï¹â®¤Ë½èÍý¤¬¤Ç¤¤ë¥¢¥ë¥´¥ê¥º¥à¤ò¾Ò²ð¤¹¤ë¡£¤³¤³¤Ç¹â®¤È¸Æ¤ó¤Ç¤¤¤ë¤â¤Î¤Ï¡¢£Ï¡Ê£î£ì£ï£ç£î¡Ë¤ËʬÎà¤Ç¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ ¡¡
¡¡¥Ò¡¼¥×¡§£²Ê¬ÌڤγÆĺÅÀ¤Ë¤Ï¼¡¤Î£²¼°¤òËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¡¡¡¡¡¡¡¡¡¡¡¡£±¡¥¡¡£è(i) ¡æ £è(2i) i=1,2,3,... £²¡¥¡¡£è(i) ¡æ £è(2i+1) i=1,2,3,...¡¡¤Ä¤Þ¤ê¡¢£²Ê¬ÌڤγÆĺÅÀ¤Ë°ÌÃÖ¤¹¤ë¥Ç¡¼¥¿¤ÎÃͤϡ¢¾ï¤Ë¾å¤Ë°ÌÃÖ¤¹¤ë¥Ç¡¼¥¿¤ÎÃͰʲ¼¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¡¡Îã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(1) ¡¡¡¡¡¡ ¡¡¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(2) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(3) ¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡£è(4)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(5) £è(6) £è(7) ¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã £è(8) £è(9) £è(10) ¡¡¤³¤Î¾ì¹ç¡¢£è(1)¡æ£è(2),£è(3) ¡¡¡¡¡¡¡¡¡¡ £è(2)¡æ£è(4),£è(5) ¡¡¡¡¡¡¡¡¡¡¡¡£è(3)¡æ£è(6),£è(7) ¡¡¡¡¡¡¡¡¡¡¡¡£è(4)¡æ£è(8),£è(9) ¡¡¡¡¡¡¡¡¡¡¡¡£è(5)¡æ£è(10)¤Ç¤¢¤ë¡£¥Ò¡¼¥×¤Ë¤è¤ëʤٴ¹¤¨¤Ï¡¢¥Ò¡¼¥×¤¬¤¹¤Ç¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤ë¤â¤Î¤È¤·¤Æ¡¢¥Ò¡¼¥×¤¬¶õ¤Ë¤Ê¤ë¤Þ¤Ç°Ê²¼¤Î£²¤Ä¤Î¥¹¥Æ¥Ã¥×¤ò·«¤êÊÖ¤¹¡£
¥¹¥Æ¥Ã¥× £±¡¡ºÇ¾å°Ì¤Î£è(1)¤ò¼è¤ê½Ð¤¹¡£ ¥¹¥Æ¥Ã¥× £²¡¡»Ä¤ê¤Î¥Ò¡¼¥×£è(2),£è(3),...,£è(n)¤ò¥Ò¡¼¥×¤ËºÆ¹½À®¤¹¤ë¡£ ¡¡¡¡¡¡¡¡¡¡ ºÆ¹½À®¤Ï¡¢°Ê²¼¤Îa), b) ¤Ë¤·¤¿¤¬¤Ã¤Æ¹Ô¤Ê¤¦¡£ ¡¡¡¡¡¡¡¡¡¡ ¡¡a) £è(1)¤Î°ÌÃ֤ˣè(n)¤ò°ÜÆ°¤¹¤ë¡£¤â¤È¤Î£è(n)¤Ïºï½ü¤¹¤ë¡£ ¡¡¡¡¡¡¡¡¡¡ b) £è(1)¤Î°ÌÃÖ¤«¤éshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ shiftdownÁàºî¡§ £è(i) < max(£è(2i), £è(2i+1))¤Î¤È¤¡¢ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(2i)¤È£è(2i+1)¤ÎÂ礤¤Êý¤ò£è(i)¤È¸ò´¹¤¹¤ë¡£ ¸ò´¹¤·¤¿¤È¤³¤í¤«¤é¡¢Æ±ÍͤÊÁàºî¤ò·«¤êÊÖ¤¹¡£ ¡¡shiftdownÁàºî¤ÎÎã¤ò°Ê²¼¤Ë¼¨¤¹¡£ ½é´ü¾õÂÖ¡§ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £·£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡£²£²¡¡¡¡ ¡¡¡¡¡¡£³£·¡¡¡¡£±£±¡¡ ¡¡¡¡¡¡¡¡£´£¹¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡¡¡£¶¾õÂÖ£²¡§½é´ü¾õÂ֤ˤª¤¤¤Æ£è(1)¤Ç¤¢¤ë£¸£´¤ò¼è¤ê½Ð¤·¡¢£è(n)¤Ç¤¢¤ë£¶¤ò£è(1)¤Î°ÌÃ֤˰ÜÆ°¤¹¤ë¡£ ¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£·£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡¡£´£¹¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡¡¡ £è(1)¤Î°ÌÃÖ¡Ê£¶¡Ë¤«¤éshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£·£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡¡£´£¹¡¡ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£·£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡¡£´£¹¡¡ ¾õÂÖ£³¡§£è(1)¤Ç¤¢¤ë£·£³¤ò¼è¤êµî¤ê¡¢£è(n)¤Ç¤¢¤ë£´£¹¤ò£è(1)¤Î°ÌÃ֤˰ÜÆ°¤¹¤ë¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£´£¹¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡¡ ¡¡£è(1)¤«¤éshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£´£¹ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡¡ ¡¡ ¾õÂÖ£´¡§£¶£¶¤ò¼è¤ê½ü¤¡¢£±£±¤ò£è(1)°ÌÃ֤˰ÜÆ°¤·¡¢shiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£´£¹¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£¶£¶¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£±£± ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¾õÂÖ£µ¡§°Ê²¼Æ±ÍͤÊÁàºî¤ò·«¤êÊÖ¤¹¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£³£·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£´£¹¡¡£¶£¶¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£±£± ¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡ ¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¾õÂÖ£¶¡§ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£²£²¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£³£·¡¡£´£¹¡¡£¶£¶¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£±£± ¾õÂÖ£·¡§ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£±£±¡¡¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£²£²¡¡£³£·¡¡£´£¹¡¡£¶£¶¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡£¶¡¡ ¾õÂÖ£¸¡§ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¶¡¡¡¡¡¡¡Ý¡Ý¡Ý¡ä¡¡£±£±¡¡£²£²¡¡£³£·¡¡£´£¹¡¡£¶£¶¡¡£·£³¡¡£¸£´ ¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã¤è¤Ã¤Æ¡¢¼è¤ê½ü¤«¤ì¤¿¥Ç¡¼¥¿¤Ïʤٴ¹¤¨¤¬ºÑ¤ó¤Ç¤¤¤ë¡£
¡¡¼¡¤Ë¡¢ºÇ½é¤Î¥Ò¡¼¥×¤ò¹½À®¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£
¥¹¥Æ¥Ã¥×£±¡¡Ç¤°Õ¤Î£²Ê¬ÌÚ¤òÍ¿¤¨¤ë¡£¤³¤Î£²Ê¬ÌڤγÆĺÅÀ¤Î¥Ç¡¼¥¿¤ÎÃͤò¤½¤ì¤¾¤ì ¡¡¡¡¡¡¡¡ ¡¡£è(1)¡¢£è(2) ‰ ¤£è(3) ‰ ¤...¤ò¤¹¤ë¡£ ¥¹¥Æ¥Ã¥×£²¡¡¤³¤Î£²Ê¬Ìڤǡ¢»Þ¤¬£±Ëܤâ½Ð¤Æ¤¤¤Ê¤¤ÄºÅÀ¡¢¤Ä¤Þ¤ê ¡¡¡¡¡¡¡¡¡¡ ¡¡£è(k),£è(k+1)¡¢... ‰ ¤£è(n)¡¡¡Êk=[n/2]+1¡Ë ¡¡¡¡¡¡¡¡¡¡ ¤Ï¡¢²¼°Ì¤Ë¥Ç¡¼¥¿¤ò»ý¤¿¤Ê¤¤¤¿¤á¡¢¥Ò¡¼¥×¤Î¾ò·ï¤¬Ëþ¤µ¤ì¤Æ¤¤¤ë¤È ¡¡¡¡¡¡¡¡ ¡¡²ò¼á¤Ç¤¤ë¡£¡¡ ¥¹¥Æ¥Ã¥×£³¡¡»Ä¤ê¤ÎĺÅÀ¤ò£è(k-1),£è(k-2),...,£è(1)¤Î½ç¤Ë¤È¤ê¤¢¤²¡¢¤½¤ÎĺÅÀ¤ò ²¼°Ì¤ÎÉôʬÌڤκ¬¡Ê£è(1)¡Ë¤È¤ß¤¿¤Æ¥Ò¡¼¥×¤ò¹½À®¤·¤Æ¤¤¤¯¡£¤½¤ÎºÝ¤Ë¤Ï¡¢ Á°µ¤ÎshiftdownÁàºî¤ò»È¤¦¡£ ¡¡¥Ò¡¼¥×À¸À®¤ÎÎã ½é´ü¾õÂÖ¡§ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡£²£± ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£µ£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£±£² ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡£´£¶¡¡¡¡¡¡¡¡¡¡£¸£·¡¡¡¡¡¡£µ£¹¡¡ ¡¡¡¡¡¡¡¡£´£°¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡£·£° ¡¡¾õÂÖ£²¡§½é´ü¾õÂ֤ˤª¤¤¤Æ£·£°¡¤£´£°¡¤£µ£¹¡¤£¸£·¤Ï²¼°Ì¤Ë¥Ç¡¼¥¿¤ò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¤Þ¤º¡¢£´£¶¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£²£± ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡£µ£³¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡£±£² ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡£·£°¡¡¡¡¡¡¡¡¡¡ £¸£·¡¡¡¡£µ£¹¡¡¡¡¡¡ ¡¡¡¡£´£°¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡ £´£¶¾õÂÖ£³¡§¾õÂÖ£²¤Ë¤ª¤¤¤Æ£·£°¡¤£¸£·¡¤£µ£¹¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£±£²¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £²£± ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £µ£³¡¡ ¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡¡¡£µ£¹ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡ £·£°¡¡¡¡¡¡¡¡¡¡ £¸£·¡¡¡¡£±£²¡¡¡¡¡¡¡¡¡¡ £´£°¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡ £´£¶¾õÂÖ£´¡§¾õÂÖ£³¤Ë¤ª¤¤¤Æ£µ£¹¡¤£·£°¡¤£¸£·¡¤£±£²¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£µ£³¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £²£± ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £¸£·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£µ£¹ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡ £·£°¡¡¡¡¡¡¡¡¡¡ £µ£³¡¡¡¡£±£²¡¡¡¡¡¡¡¡¡¡ £´£°¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡ £´£¶¾õÂÖ£µ¡§¾õÂÖ£´¤Ë¤ª¤¤¤Æ£¸£·¡¤£µ£¹¡¤£·£°¡¤£µ£³¡¤£±£²¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£²£±¤Ë¤Ä¤¤¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡£¸£· ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡£·£°¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£µ£¹ ¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡ £´£¶¡¡¡¡¡¡¡¡¡¡ £µ£³¡¡¡¡£±£²¡¡¡¡¡¡¡¡ ¡¡£´£°¡¡ ¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã ¡¡ £²£±¤è¤Ã¤Æ¡¢Ç¤°Õ¤ËÍ¿¤¨¤¿£²Ê¬ÌÚ¤ËÂФ·¤Æ¡¢¥Ò¡¼¥×¤¬¹½À®¤Ç¤¤¿¡£
¡¡¾åµ¤ÇÀâÌÀ¤·¤¿¹Í¤¨¤ò¤â¤È¤Ë¡¢¥Ç¡¼¥¿¤Îʤٴ¹¤¨¤ò¹Ô¤Ê¤¦¡£¼ÂºÝ¤Ë·×»»µ¡¤Ç¹Ô¤Ê¤¦¾ì¹ç¡¢£²Ê¬ÌÚ¤òɽ¸½¤¹¤ë¤³¤È¤ÏÌÌÅݤʤ³¤È¤Ç¤¢¤ë¡£¤½¤³¤Ç¡¢º£²ó¤ÏÇÛÎó¤ò¹©Éפ·£²Ê¬Ìڤˤߤ¿¤Æ¤Æ¤ª¤³¤Ê¤¦¡£²¼µ¤Î¤è¤¦¤ÊÇÛÎó¤ò¹Í¤¨¤Æ¤ß¤è¤¦¡£
¡¡¡¡ ------¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü---- ¡¡¡¡¡Ã£è(1)¡Ã£è(2)¡¡£è(3)¡Ã£è(4)¡¡£è(5)¡¡£è(6)¡¡£è(7)¡Ã£è(8)¡¡£è(8)¡¦¡¦¡¦ ------¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü-----¡Ü----Êص¹Åª¤Ë¡¢ÇÛÎó¤Î¶èÀÚ¤ê¤òÆþ¤ì¤Æ¤¤¤ë½ê¤ÈÆþ¤ì¤Æ¤¤¤Ê¤¤½ê¤¬¤¢¤ë¡£¤³¤ì¤Ï¡¢£²Ê¬Ìڤγ¬ÁؤòÌÀ¤é¤«¤Ë¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£¾åµÇÛÎó¤Ï¡¢²¼µ¤Î£²Ê¬ÌÚ¤òɽ¸½¤·¤Æ¤¤¤ë¤³¤È¤òÍý²ò¤·¤Æ¤¤¤¿¤À¤¤¿¤¤¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(1) ¡¡¡¡¡¡ ¡¡¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ £è(2)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡¡£è(3) ¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã¡¡¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ý¡Ý¡Ý¡Ü¡Ý¡Ý¡Ý¡Ý¡Ý¡Ã ¡¡¡¡¡¡£è(4)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£è(5) £è(6) £è(7) ¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã¡¡¡¡¡¡¡¡¡¡¡Ã¡Ý¡Ý¡Ü¡Ý¡Ý¡Ã £è(8) £è(9) £è(10)¡¡¥¢¥ë¥´¥ê¥º¥à¤Î¿Ê¹Ô¤È¤È¤â¤Ë¥Ò¡¼¥×¤¬½Ì¾®¤¹¤ë¤¿¤á¡¢ÇÛÎó¤Î¸åÈø¤¬¶õ¤È¤Ê¤ë¡£¤½¤³¤Ç¡¢¥Ò¡¼¥×¤«¤é¼è¤ê½Ð¤·¤¿¥Ç¡¼¥¿¤òÇÛÎó¤Î¸å¤í¤«¤é½ç¤ËµÍ¤á¤Æ¹Ô¤¯¤³¤È¤Ë¤è¤ê¡¢¥½¡¼¥È¤¬´°Î»¤·¤¿»þÅÀ¤Ç¡¢ÇÛÎóÆâ¤Ë¥Ç¡¼¥¿¤¬Ê¤ÙÂؤï¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£
¡¡ÇÛÎó¤Î¾ì¹ç¤ÎÎã
¡Ê£±¡Ë¡¡½é´ü¥Ò¡¼¥×¤ÎÀ¸À®
½é´ü¥Ç¡¼¥¿¡§
21 53 12 46 87 59 40 70¾õÂÖ£²¡§½é´ü¾õÂ֤ˤª¤¤¤Æ£·£°¡¤£´£°¡¤£µ£¹¡¤£¸£·¤Ï²¼°Ì¤Ë¥Ç¡¼¥¿¤ò»ý¤¿¤Ê¤¤¤Î¤Ç¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¤Þ¤º¡¢£´£¶¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
21 53 12 70 87 59 40 46¡¡¡¡¡¡ ¾õÂÖ£³¡§¾õÂÖ£²¤Ë¤ª¤¤¤Æ£·£°¡¤£¸£·¡¤£µ£¹¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£±£²¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
21 53 59 70 87 12 40 46¾õÂÖ£´¡§¾õÂÖ£³¤Ë¤ª¤¤¤Æ£µ£¹¡¤£·£°¡¤£¸£·¡¤£±£²¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£µ£³¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
21 87 59 70 53 12 40 46¾õÂÖ£µ¡§¾õÂÖ£´¤Ë¤ª¤¤¤Æ£¸£·¡¤£µ£¹¡¤£·£°¡¤£µ£³¡¤£±£²¡¤£´£°¡¤£´£¶¤Ï¡¢¥Ò¡¼¥×¤Î¾ò·ï¤òËþ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤é¤ì¤ë¡£¼¡¤Ë£²£±¤ò£²Ê¬Ìڤκ¬¤È¤ß¤¿¤ÆshiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£
87 70 59 46 53 12 40 21¡Ê£²¡Ë¡¡¥½¡¼¥È ½é´ü¾õÂÖ¡§
87 70 59 46 53 12 40 21¾õÂÖ£²¡§ÀèƬ¤Î£¸£·¡Ê£è(1)¡Ë¤ò¼è¤ê½Ð¤·¤¹¡£¡¡£²£±¡Ê£è(k)¡Ë¤ò£²Ê¬Ìڤκ¬¡Ê£è(1)¡Ë¤Ë°ÜÆ°¤·¡¢shiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£¡¡¼è¤ê½Ð¤·¤¿£¸£·¤ÏÇÛÎó¤ÎºÇ¸å¤Ë³ÊǼ¤¹¤ë¡£
70 53 59 46 21 12 40 87¾õÂÖ£³¡§ÀèƬ¤Î£·£°¡Ê£è(1)¡Ë¤ò¼è¤ê½Ð¤·¤¹¡££´£°¤ò£²Ê¬Ìڤκ¬¡Ê£è(1)¡Ë¤Ë°ÜÆ°¤·¡¢shiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£¡¡¼è¤ê½Ð¤·¤¿£·£°¤ÏÇÛÎó¤ÎºÇ¸å¤«¤é£²ÈÖÌܤˤ˳ÊǼ¤¹¤ë¡£
59 53 40 46 21 12 70 87¾õÂÖ£´¡§ÀèƬ¤Î£µ£¹¡Ê£è(1)¡Ë¤ò¼è¤ê½Ð¤¹¡££±£²¤ò£²Ê¬Ìڤκ¬¡Ê£è(1)¡Ë¤Ë°ÜÆ°¤·¡¢shiftdownÁàºî¤ò¹Ô¤Ê¤¦¡£¡¡¼è¤ê½Ð¤·¤¿£µ£¹¤ÏÇÛÎó¤ÎºÇ¸å¤«¤é£³ÈÖÌܤ˳ÊǼ¤¹¤ë¡£
53 46 40 12 21 59 70 87¾õÂÖ£µ¡§°Ê²¼Æ±ÍͤÊÁàºî¤ò·«¤êÊÖ¤¹¡£
46 21 40 12 53 59 70 87¾õÂÖ£¶¡§
39 20 12 46 53 59 70 87¾õÂÖ£·¡§
21 12 40 46 53 59 70 87¾õÂÖ£¸¡§
12 21 40 46 53 59 70 87¡¡¾åµ¤Î¹Í¤¨¤ò¥×¥í¥°¥é¥à¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ë¡£
1: void HeapSort(int data[],int n) { 2: int top,bottom,tmp; 3: 4: bottom = n/2 +1; 5: top = n; 6: while (bottom > 0) { 7: bottom--; 8: Shiftdown(data,top,bottom); 9: } 10: while (top > 0) { 11: tmp = data[0]; 12: data[0] = data[top]; 13: data[top] = tmp; 14: top--; 15: Shiftdown(data,top,bottom); 16: } 17: } 18: 19: void Shiftdown(int data[],int top,int bottom) { 20: int i, tmp; 21: 22: i = 2 * bottom; 23: while(i <= top) { 24: if(i < top && data[i+1]>data[i]) i++; 25: if(data[bottom]>=data[i]) break; 26: tmp = data[bottom]; 27: data[bottom] = data[i]; 28: data[i] = tmp; 29: bottom = i; 30: i = 2 * bottom; 31: } 32: }¡¡£¶¡Á£¹¤Ç½é´ü¤Î¥Ò¡¼¥×¤òºîÀ®¤·¡¢£±£°¡Á£±£¶¤Ç¥Ò¡¼¥×¤ÎºÆ¹½À®¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë¡£