¡¡
¡¡¤³¤³¤Ç¤Ï¹â®¤Ë½èÍý¤¬¤Ç¤¤ë¥¢¥ë¥´¥ê¥º¥à¤ò¾Ò²ð¤¹¤ë¡£¤³¤³¤Ç¹â®¤È¸Æ¤ó¤Ç¤¤¤ë¤â¤Î¤Ï¡¢£Ï¡Ê£î£ì£ï£ç£î¡Ë¤ËʬÎà¤Ç¤¤ë¤â¤Î¤Ç¤¢¤ë¡£ ¡¡
¡¡¥Ò¡¼¥×¡§£²Ê¬ÌڤγÆÄºÅÀ¤Ë¤Ï¼¡¤Î£²¼°¤òËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¡¡¡¡¡¡¡¡¡¡¡¡£±¡¥¡¡£è(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: }
¡¡£¶¡Á£¹¤Ç½é´ü¤Î¥Ò¡¼¥×¤òºîÀ®¤·¡¢£±£°¡Á£±£¶¤Ç¥Ò¡¼¥×¤ÎºÆ¹½À®¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤ë¡£