¢¨¥Í¥¿¤¬¤Ê¤¤¤Î¤Ç»¨µ¤Ç¤¹¡£
²¿Ç¯¤«¤Ö¤ê¤ËºÇ¿·¤ÎVC++¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢½é¤á¤Æ¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¥³¥ó¥½¡¼¥ë¥×¥í¥°¥é¥à¾å¤Ç¥¯¥¤¥Ã¥¯¥½¡¼¥È¤ò½ñ¤¤¤ÆÈæ³Ó¤·¤Æ¤ß¤è¤¦¡¢¤È¤¤¤¦ÄêÈ֤Υͥ¿¤ò¤ä¤Ã¤Æ¤ß¤è¤¦¤È¡£
·ëÏÀ¤«¤é¸À¤¦¤È¤¤¤í¤¤¤í¤ä¤Ã¤Æ¤âstd::sort¤Ë¤Ü¤íÉ餱¤Ç¡¢16Ëü¸Ä¤Îunsigned intʤÓÂؤ¨¤Ç°Ê²¼¤Î¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
PC¤Î½èÍý¤Î½Å¤µ¤È¤«ÊÂ¤Ó¤Ç¤Î¸íº¹¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¸µ¤Î¿ôÎó¤ÏƱ¤¸¤â¤Î¤ò»È¤Ã¤Æ¤Þ¤¹¡£
¤Û¤«¤Î¥½¡¼¥È¤ËÀÚ¤êÂؤ¨¤È¤«¤Ï¤ä¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢5³äÁý¤·¤è¤ê¥Þ¥·¤Ê¤é¡¢¥ÉÁǿͤ¬Å¬Åö¤Ë¤ä¤Ã¤¿³ä¤Ë¤Ï¤Þ¤È¤â¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¡¢¤È¾¡¼ê¤Ë»×¤Ã¤Æ¤Þ¤¹¤¬¡¢¥¬¥Á¤Î¿Í¤¬¤ä¤Ã¤¿¤é¤É¤ó¤Ê´¶¤¸¤Ê¤ó¤Ç¤·¤ç¤¦¤«¤Í¡£
ήÀФËÃÙ¤¤¤ÈɾȽ¤Îqsort¤Ë¤Ï¾¡¤Æ¤Þ¤·¤¿¡£
Àë¸À¤Ê¤É¤ÈºÆµ¢Éôʬ°Ê³°¤Î¥½¡¼¥È´Ø¿ô¤Ï²¼¼ê¤Ê¤ê¤Ë¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤±¤Þ¤·¤¿¡£
°Ê²¼¡¢´¶ÁۤȤ«¤½¤¦¤¤¤¦¤Î¤Ç¤¹¡£
´ðËÜŪ¤Ê»ÈÍÑ´¶¤È¤·¤Æ¤Ï¡¢´ðËÜŪ¤Ë¤ÏMASM6¤ä¡¢JWASM¤ÇMACRO¤äPROC¤Ê¤·¤Î¥³¡¼¥É¤ò½ñ¤¤¤Æ¤¤¤ë´¶¤¸¤Ç¤·¤¿¡£
MMX»È¤ª¤¦¤È¤«¡¢ÊÑÂÖŪ¤ÊºÇŬ²½¤ò¤«¤±¤è¤¦¤È¤«¤È¤·¤Ê¤±¤ì¤Ð¡¢PC98ÍѤȤµ¤Û¤ÉÊѤï¤ê¤Ê¤¤¤Ç¤¹¡£
¥¯¥¤¥Ã¥¯¥½¡¼¥È¤Î¼ÂÁõ¤Î»ÅÊý¤Ï¿§¡¹¤È¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤ò½Å¤Í¤Æ»î¤·¤Þ¤·¤¿¤¬¡¢¤ä¤êÊý¼¡Âè¤Ç¾¯¤Ê¤¤¤È10%¡¢Â¿¤¤¤È¿ôÇܤۤɰ㤤¤¬½Ð¤ÆÌÌÇò¤«¤Ã¤¿¤Ç¤¹¡£
·ë¶É´Êñ¤½¤¦¤Ê¤ä¤êÊý¤Ç¤Ï¡¢ÀèƬ¥Ô¥Ü¥Ã¥È¤ò¥Ô¥Ã¥¯¡¢¸å¤í¤Î¾®¤µ¤¤¤Î¢ªÁ°¤ÎÂ礤¤¤Î¤È¸ò¸ß¤Ë¸¡º÷¤·¤Æ¸ò¸ß¤Ë¶õ¤¥¹¥Ú¡¼¥¹¤ËÊü¤ê¹þ¤à¡¢ºÇ¸å¤Ë¥Ô¥Ü¥Ã¥È¤ò¶õ¤¤ËÂåÆþ¡¢¤¬°ìÈ֤ޤȤâ¤Ê®Å٤ˤʤê¤Þ¤·¤¿¡£
ºÆµ¢¤ò»È¤Ã¤¿Êý¤¬´Ø°ì¸Ä¿ô¤Ç´°·ë¤¹¤ë¤â¤Î¤è¤ê¤â¿¾¯Â®¤¤¤³¤È¤¬Â¿¤½¤¦¤Ç¤¹¤¬¡Ê°õ¾Ý¡£¾Ü¤·¤¤Åý·×¤È¤é¤º¡Ë¡¢¤µ¤Û¤ÉÊѤï¤ê¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£
ºÆµ¢¤ò»È¤Ã¤¿Êý¤¬¤Ï¤ë¤«¤Ë³Ú¤Ç¤¹¤¬¡£
Ʊ¤¸¤â¤Î¤òscnsd¤Ç¸¡º÷¤·¤Æ¤Þ¤È¤á¤¿¤ê¤È¤«¤â»î¤·¤Þ¤·¤¿¤¬¡¢¤½¤Î½èÍýʬ¤ÇÃÙ¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢Íð¿ô¤òʤ٤ÆÍ·¤Ö¥ì¥Ù¥ë¤Ç¤Ï°ÕÌ£¤¬¤Ê¤«¤Ã¤¿¤Ç¤¹¡£
Æüì¤Ê¾ì¹ç¤È¤«¤ò¤·¤Ã¤«¤ê¤ä¤ì¤ÐÊѤï¤ë¤ó¤Ç¤·¤ç¤¦¤¬¡¢¤½¤³¤Þ¤Ç¤¹¤ëµ¤¤Ï¤Ê¤¤¤Ç¤¹¤·¡£
¤Þ¤¢¡¢°ì½µ´Ö¤Û¤É¤ÎÍ·¤Ó¤È¤·¤Æ¤Ï¤³¤ó¤Ê¤â¤Î¤Ç¤·¤ç¤¦¡£
»ÈÍѲÁÃͤ¬¤Ê¤¤¤Î¤Ç¥³¡¼¥É¤ÏºÜ¤»¤Þ¤»¤ó¡£
¡ü¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ÎÃí°ÕÅÀ¤È¤«¤è¤¯¤ï¤«¤é¤Ê¤«¤Ã¤¿¤È¤³¤í¤È¤«¤½¤¦¤¤¤¦¤Î¤Ë¤Ä¤¤¤Æ¡£
¤Ê¤Ë¤âÄ´¤Ù¤º¤Ë¤ä¤Ã¤¿¤¿¤á¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥ÉÆâ¤Ç°ú¿ô¤Î¥Ý¥¤¥ó¥¿¤ÎÆÀÊý¤¬¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£
¥Ý¥¤¥ó¥¿¤òÀë¸À¤·¤Æ¤½¤ì¤òÂåÆþ¡¢¤ÇÂåÍѲÄǽ¤Ç¤·¤¿¤¬¡¢¤ä¤äÌÌÅݤǤ·¤¿¡£
C++¤ÎÊý¤Ç¤Ï¥Ý¥¤¥ó¥¿¡Ü£±¤Ï¥µ¥¤¥ºÊ¬Â¤µ¤ì¤ë¡¢¤È¤¤¤¦¤Î¤Ï¥¢¥»¥ó¥Ö¥éǾ¤Î¿Í´Ö¤Ë¤Ï櫤Ǥ·¤¿¡£
[ÊÑ¿ô]¤¬¤Ç¤¤Ê¤¤¤Î¤ÏJWASM¤È¤«¤È°ì½ï¤Ç¤¹¤¬¡¢¥¨¥é¡¼¤¬½Ð¤Ê¤¤¤Î¤Ç˺¤ì¤ä¤¹¤¤¤Ç¤¹¡£
ebx,esi,edi°Ê³°¤â¥¢¥É¥ì¥¹»ØÄê¤Ç¤¤¿¤ê¡¢¥¹¥±¡¼¥ë¥Õ¥¡¥¯¥¿¤¬»È¤¨¤ë¤Î¤Ï¡ÊPC98¤Ç¤â386°Ê¹ß¤Ç»È¤¨¤Þ¤¹¤¬¡ËÊØÍø¤À¤È»×¤¤¤Þ¤·¤¿¡£
¥Ç¥Ð¥Ã¥¬¤Ç³Æ¼ï¥ì¥¸¥¹¥¿¡¢ÊÑ¿ô¤ò³Îǧ¤Ç¤¤ë¤Î¤â¤È¤Ã¤Æ¤âÊØÍø¤Ç¤·¤¿¡£
PC98¤Î¥½¥Õ¥È¤òºî¤Ã¤Æ¤ë¤È¤¤¤Ä¤Î´Ö¤Ë¤«C++¤Î¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡¢¤È¤¤¤¦¤¢¤ë¼ïÅöÁ³¤Î¤è¤¦¤Ê¤ªÏäǤ·¤¿¡£
º£»þ¤À¤È¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤«¤éÆþ¤Ã¤Æ¤ë¿Í¤ÎÊý¤¬¤Ï¤ë¤«¤Ë¿¤¤µ¤¤¬¤·¤Æ¤Ê¤ê¤Þ¤»¤ó¤¬¡Ä¡Ä¡£
Äɵ
ÁÞÆþ¥½¡¼¥È¤ËÀÚ¤êÂؤ¨¤ò¼ÂÁõ¤·¤Ê¤ª¤·¤¿¤ê¡¢Æ±°ì¥Á¥§¥Ã¥¯¤ä¥Ô¥Ü¥Ã¥È¤ò£³¤Ä¤«¤é¤È¤ë¤Î¤òƳÆþ¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤âºî¤ì¤Þ¤·¤¿¡£
ÁÞÆþ¥½¡¼¥È¤Ïwiki¤ËºÜ¤Ã¤Æ¤¿¥³¡¼¥É¤Ç¤Ï¤Ê¤¯¡¢¤ä¤Í¤¦¤é¤ª»á¤Î¥Ö¥í¥°¤Ë¤¢¤Ã¤¿¤â¤Î¤ò¸µ¤Ë¤·¤¿¤È¤³¤í¡¢Â®ÅÙ¤¬³ÊÃʤË®¤¯¤Ê¤ê¼ÂÍÑŪ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Ʊ¤¸¤³¤È¤Ç¤â¹Í¤¨Êý¤¬°ã¤¦¤ÈÁ´Á³·ë²Ì¤¬°ã¤Ã¤ÆÌÌÇò¤¤¤Î¤¬¥¢¥»¥ó¥Ö¥é¤À¤È»×¤¤¤Þ¤¹¡£
·ë¶Éstd::sort¤Ë¤Ï¾¡¤Æ¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢386°Ê¹ß¤Ç¤Î¥¯¥¤¥Ã¥¯¥½¡¼¥È¤äÁÞÆþ¥½¡¼¥È¤ò½¬ÆÀ¤·¤¿¤Î¤Ç¡¢¾Í襷¥ß¥å¥ì¡¼¥·¥ç¥ó·ÏÅý¤Î¥²¡¼¥à¤Ê¤É¤Ë±þÍѤǤ¤ë¤«¤â¡¢¤È»×¤¤¤Þ¤·¤¿¡£
dwordÉý¤òROL ROR¤Ç²ó¤·¤Æ¥½¡¼¥È¤¹¤ì¤Ð¡¢¤¢¤ëÄøÅ٤ιàÌÜÊÌ¥½¡¼¥È¤â¤Ç¤¤ë¤·¤¢¤ê¤À¤Ê¡¢¤ß¤¿¤¤¤Ê¡£
º¬ËÜŪ¤Ë¤Ï¥Ð¥é¥ó¥¹Ä´À°¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¶¨ÎϼԤ¬¤¤¤Ê¤¤¤Èºî¤ì¤ëµ¤¤¬¤·¤Þ¤»¤ó¤·¡¢¥¹¥Ú¥Ã¥¯¹Í¤¨¤¿¤éÁÞÆþ¥½¡¼¥È¤ÇÃÙ¤¯¤Ê¤ë¿ô¤Ï½èÍý¤·¤¤ì¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤À¤Ã¤¿¤ê¤·¤Þ¤¹¤¬¡£
ºÇ½ª·ë²Ì¡Êwindows10¡¢core-i5 6400´Ä¶ ÊÑ¿ô½é´ü²½°Ê³°¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Çµ½Ò¡¡ÊÑ¿ô¤Î¿ô¤Ï¼«Í³¡¡·×¬¤ÏÁ°¸å¤Çɸ½à¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤·¤Æ¹Ô¤Ã¤¿¤Î¤Ç¤«¤Ê¤ê¤Æ¤¤È¡¼¤Ç¤¹¡Ë
std::sort£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
517631500 nano sec
79319800 nano sec
341990500 nano sec
¥½¡¼¥ÈºÑ¤ßÂбþƱ°ì¥Á¥§¥Ã¥¯¤¢¤ê£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
577519500 nano sec¡ÊÌó1.1ÇÜ¡Ë
154799700 nano sec¡ÊÌó£²ÇÜ¡Ë
404159400 nano sec¡ÊÌó1.2ÇÜ¡Ë
²¼¤Î¤È¤êÊý¤ò¥½¡¼¥ÈºÑ¤ßÂбþ¤ËÊѹ¹ÈÇ£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
542523900 nano sec
144345300 nano sec
832237900 nano sec
ÁÞÆþ¥½¡¼¥ÈÆþ¤ê¥½¡¼¥È¥Æ¥¹¥È£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¡à200000
548752100 nano sec
946397300 nano sec
²¿Ç¯¤«¤Ö¤ê¤ËºÇ¿·¤ÎVC++¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢½é¤á¤Æ¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
¥³¥ó¥½¡¼¥ë¥×¥í¥°¥é¥à¾å¤Ç¥¯¥¤¥Ã¥¯¥½¡¼¥È¤ò½ñ¤¤¤ÆÈæ³Ó¤·¤Æ¤ß¤è¤¦¡¢¤È¤¤¤¦ÄêÈ֤Υͥ¿¤ò¤ä¤Ã¤Æ¤ß¤è¤¦¤È¡£
·ëÏÀ¤«¤é¸À¤¦¤È¤¤¤í¤¤¤í¤ä¤Ã¤Æ¤âstd::sort¤Ë¤Ü¤íÉ餱¤Ç¡¢16Ëü¸Ä¤Îunsigned intʤÓÂؤ¨¤Ç°Ê²¼¤Î¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
PC¤Î½èÍý¤Î½Å¤µ¤È¤«ÊÂ¤Ó¤Ç¤Î¸íº¹¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¸µ¤Î¿ôÎó¤ÏƱ¤¸¤â¤Î¤ò»È¤Ã¤Æ¤Þ¤¹¡£
¤Û¤«¤Î¥½¡¼¥È¤ËÀÚ¤êÂؤ¨¤È¤«¤Ï¤ä¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢5³äÁý¤·¤è¤ê¥Þ¥·¤Ê¤é¡¢¥ÉÁǿͤ¬Å¬Åö¤Ë¤ä¤Ã¤¿³ä¤Ë¤Ï¤Þ¤È¤â¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¡¢¤È¾¡¼ê¤Ë»×¤Ã¤Æ¤Þ¤¹¤¬¡¢¥¬¥Á¤Î¿Í¤¬¤ä¤Ã¤¿¤é¤É¤ó¤Ê´¶¤¸¤Ê¤ó¤Ç¤·¤ç¤¦¤«¤Í¡£
ήÀФËÃÙ¤¤¤ÈɾȽ¤Îqsort¤Ë¤Ï¾¡¤Æ¤Þ¤·¤¿¡£
Àë¸À¤Ê¤É¤ÈºÆµ¢Éôʬ°Ê³°¤Î¥½¡¼¥È´Ø¿ô¤Ï²¼¼ê¤Ê¤ê¤Ë¥¢¥»¥ó¥Ö¥é¤Ç½ñ¤±¤Þ¤·¤¿¡£
°Ê²¼¡¢´¶ÁۤȤ«¤½¤¦¤¤¤¦¤Î¤Ç¤¹¡£
´ðËÜŪ¤Ê»ÈÍÑ´¶¤È¤·¤Æ¤Ï¡¢´ðËÜŪ¤Ë¤ÏMASM6¤ä¡¢JWASM¤ÇMACRO¤äPROC¤Ê¤·¤Î¥³¡¼¥É¤ò½ñ¤¤¤Æ¤¤¤ë´¶¤¸¤Ç¤·¤¿¡£
MMX»È¤ª¤¦¤È¤«¡¢ÊÑÂÖŪ¤ÊºÇŬ²½¤ò¤«¤±¤è¤¦¤È¤«¤È¤·¤Ê¤±¤ì¤Ð¡¢PC98ÍѤȤµ¤Û¤ÉÊѤï¤ê¤Ê¤¤¤Ç¤¹¡£
¥¯¥¤¥Ã¥¯¥½¡¼¥È¤Î¼ÂÁõ¤Î»ÅÊý¤Ï¿§¡¹¤È¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤ò½Å¤Í¤Æ»î¤·¤Þ¤·¤¿¤¬¡¢¤ä¤êÊý¼¡Âè¤Ç¾¯¤Ê¤¤¤È10%¡¢Â¿¤¤¤È¿ôÇܤۤɰ㤤¤¬½Ð¤ÆÌÌÇò¤«¤Ã¤¿¤Ç¤¹¡£
·ë¶É´Êñ¤½¤¦¤Ê¤ä¤êÊý¤Ç¤Ï¡¢ÀèƬ¥Ô¥Ü¥Ã¥È¤ò¥Ô¥Ã¥¯¡¢¸å¤í¤Î¾®¤µ¤¤¤Î¢ªÁ°¤ÎÂ礤¤¤Î¤È¸ò¸ß¤Ë¸¡º÷¤·¤Æ¸ò¸ß¤Ë¶õ¤¥¹¥Ú¡¼¥¹¤ËÊü¤ê¹þ¤à¡¢ºÇ¸å¤Ë¥Ô¥Ü¥Ã¥È¤ò¶õ¤¤ËÂåÆþ¡¢¤¬°ìÈ֤ޤȤâ¤Ê®Å٤ˤʤê¤Þ¤·¤¿¡£
ºÆµ¢¤ò»È¤Ã¤¿Êý¤¬´Ø°ì¸Ä¿ô¤Ç´°·ë¤¹¤ë¤â¤Î¤è¤ê¤â¿¾¯Â®¤¤¤³¤È¤¬Â¿¤½¤¦¤Ç¤¹¤¬¡Ê°õ¾Ý¡£¾Ü¤·¤¤Åý·×¤È¤é¤º¡Ë¡¢¤µ¤Û¤ÉÊѤï¤ê¤Ï¤Ê¤µ¤½¤¦¤Ç¤¹¡£
ºÆµ¢¤ò»È¤Ã¤¿Êý¤¬¤Ï¤ë¤«¤Ë³Ú¤Ç¤¹¤¬¡£
Ʊ¤¸¤â¤Î¤òscnsd¤Ç¸¡º÷¤·¤Æ¤Þ¤È¤á¤¿¤ê¤È¤«¤â»î¤·¤Þ¤·¤¿¤¬¡¢¤½¤Î½èÍýʬ¤ÇÃÙ¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢Íð¿ô¤òʤ٤ÆÍ·¤Ö¥ì¥Ù¥ë¤Ç¤Ï°ÕÌ£¤¬¤Ê¤«¤Ã¤¿¤Ç¤¹¡£
Æüì¤Ê¾ì¹ç¤È¤«¤ò¤·¤Ã¤«¤ê¤ä¤ì¤ÐÊѤï¤ë¤ó¤Ç¤·¤ç¤¦¤¬¡¢¤½¤³¤Þ¤Ç¤¹¤ëµ¤¤Ï¤Ê¤¤¤Ç¤¹¤·¡£
¤Þ¤¢¡¢°ì½µ´Ö¤Û¤É¤ÎÍ·¤Ó¤È¤·¤Æ¤Ï¤³¤ó¤Ê¤â¤Î¤Ç¤·¤ç¤¦¡£
»ÈÍѲÁÃͤ¬¤Ê¤¤¤Î¤Ç¥³¡¼¥É¤ÏºÜ¤»¤Þ¤»¤ó¡£
¡ü¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤ÎÃí°ÕÅÀ¤È¤«¤è¤¯¤ï¤«¤é¤Ê¤«¤Ã¤¿¤È¤³¤í¤È¤«¤½¤¦¤¤¤¦¤Î¤Ë¤Ä¤¤¤Æ¡£
¤Ê¤Ë¤âÄ´¤Ù¤º¤Ë¤ä¤Ã¤¿¤¿¤á¡¢¥¢¥»¥ó¥Ö¥é¥³¡¼¥ÉÆâ¤Ç°ú¿ô¤Î¥Ý¥¤¥ó¥¿¤ÎÆÀÊý¤¬¤ï¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿¡£
¥Ý¥¤¥ó¥¿¤òÀë¸À¤·¤Æ¤½¤ì¤òÂåÆþ¡¢¤ÇÂåÍѲÄǽ¤Ç¤·¤¿¤¬¡¢¤ä¤äÌÌÅݤǤ·¤¿¡£
C++¤ÎÊý¤Ç¤Ï¥Ý¥¤¥ó¥¿¡Ü£±¤Ï¥µ¥¤¥ºÊ¬Â¤µ¤ì¤ë¡¢¤È¤¤¤¦¤Î¤Ï¥¢¥»¥ó¥Ö¥éǾ¤Î¿Í´Ö¤Ë¤Ï櫤Ǥ·¤¿¡£
[ÊÑ¿ô]¤¬¤Ç¤¤Ê¤¤¤Î¤ÏJWASM¤È¤«¤È°ì½ï¤Ç¤¹¤¬¡¢¥¨¥é¡¼¤¬½Ð¤Ê¤¤¤Î¤Ç˺¤ì¤ä¤¹¤¤¤Ç¤¹¡£
ebx,esi,edi°Ê³°¤â¥¢¥É¥ì¥¹»ØÄê¤Ç¤¤¿¤ê¡¢¥¹¥±¡¼¥ë¥Õ¥¡¥¯¥¿¤¬»È¤¨¤ë¤Î¤Ï¡ÊPC98¤Ç¤â386°Ê¹ß¤Ç»È¤¨¤Þ¤¹¤¬¡ËÊØÍø¤À¤È»×¤¤¤Þ¤·¤¿¡£
¥Ç¥Ð¥Ã¥¬¤Ç³Æ¼ï¥ì¥¸¥¹¥¿¡¢ÊÑ¿ô¤ò³Îǧ¤Ç¤¤ë¤Î¤â¤È¤Ã¤Æ¤âÊØÍø¤Ç¤·¤¿¡£
PC98¤Î¥½¥Õ¥È¤òºî¤Ã¤Æ¤ë¤È¤¤¤Ä¤Î´Ö¤Ë¤«C++¤Î¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡¢¤È¤¤¤¦¤¢¤ë¼ïÅöÁ³¤Î¤è¤¦¤Ê¤ªÏäǤ·¤¿¡£
º£»þ¤À¤È¡¢¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤«¤éÆþ¤Ã¤Æ¤ë¿Í¤ÎÊý¤¬¤Ï¤ë¤«¤Ë¿¤¤µ¤¤¬¤·¤Æ¤Ê¤ê¤Þ¤»¤ó¤¬¡Ä¡Ä¡£
Äɵ
ÁÞÆþ¥½¡¼¥È¤ËÀÚ¤êÂؤ¨¤ò¼ÂÁõ¤·¤Ê¤ª¤·¤¿¤ê¡¢Æ±°ì¥Á¥§¥Ã¥¯¤ä¥Ô¥Ü¥Ã¥È¤ò£³¤Ä¤«¤é¤È¤ë¤Î¤òƳÆþ¤·¤¿¥Ð¡¼¥¸¥ç¥ó¤âºî¤ì¤Þ¤·¤¿¡£
ÁÞÆþ¥½¡¼¥È¤Ïwiki¤ËºÜ¤Ã¤Æ¤¿¥³¡¼¥É¤Ç¤Ï¤Ê¤¯¡¢¤ä¤Í¤¦¤é¤ª»á¤Î¥Ö¥í¥°¤Ë¤¢¤Ã¤¿¤â¤Î¤ò¸µ¤Ë¤·¤¿¤È¤³¤í¡¢Â®ÅÙ¤¬³ÊÃʤË®¤¯¤Ê¤ê¼ÂÍÑŪ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
Ʊ¤¸¤³¤È¤Ç¤â¹Í¤¨Êý¤¬°ã¤¦¤ÈÁ´Á³·ë²Ì¤¬°ã¤Ã¤ÆÌÌÇò¤¤¤Î¤¬¥¢¥»¥ó¥Ö¥é¤À¤È»×¤¤¤Þ¤¹¡£
·ë¶Éstd::sort¤Ë¤Ï¾¡¤Æ¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢386°Ê¹ß¤Ç¤Î¥¯¥¤¥Ã¥¯¥½¡¼¥È¤äÁÞÆþ¥½¡¼¥È¤ò½¬ÆÀ¤·¤¿¤Î¤Ç¡¢¾Í襷¥ß¥å¥ì¡¼¥·¥ç¥ó·ÏÅý¤Î¥²¡¼¥à¤Ê¤É¤Ë±þÍѤǤ¤ë¤«¤â¡¢¤È»×¤¤¤Þ¤·¤¿¡£
dwordÉý¤òROL ROR¤Ç²ó¤·¤Æ¥½¡¼¥È¤¹¤ì¤Ð¡¢¤¢¤ëÄøÅ٤ιàÌÜÊÌ¥½¡¼¥È¤â¤Ç¤¤ë¤·¤¢¤ê¤À¤Ê¡¢¤ß¤¿¤¤¤Ê¡£
º¬ËÜŪ¤Ë¤Ï¥Ð¥é¥ó¥¹Ä´À°¤¬¤Ç¤¤Ê¤¤¤Î¤Ç¶¨ÎϼԤ¬¤¤¤Ê¤¤¤Èºî¤ì¤ëµ¤¤¬¤·¤Þ¤»¤ó¤·¡¢¥¹¥Ú¥Ã¥¯¹Í¤¨¤¿¤éÁÞÆþ¥½¡¼¥È¤ÇÃÙ¤¯¤Ê¤ë¿ô¤Ï½èÍý¤·¤¤ì¤Ê¤¤¤Î¤ÏÌÀ¤é¤«¤À¤Ã¤¿¤ê¤·¤Þ¤¹¤¬¡£
ºÇ½ª·ë²Ì¡Êwindows10¡¢core-i5 6400´Ä¶ ÊÑ¿ô½é´ü²½°Ê³°¥¤¥ó¥é¥¤¥ó¥¢¥»¥ó¥Ö¥é¤Çµ½Ò¡¡ÊÑ¿ô¤Î¿ô¤Ï¼«Í³¡¡·×¬¤ÏÁ°¸å¤Çɸ½à¥é¥¤¥Ö¥é¥ê¤ò¸Æ¤Ó½Ð¤·¤Æ¹Ô¤Ã¤¿¤Î¤Ç¤«¤Ê¤ê¤Æ¤¤È¡¼¤Ç¤¹¡Ë
std::sort£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
517631500 nano sec
79319800 nano sec
341990500 nano sec
¥½¡¼¥ÈºÑ¤ßÂбþƱ°ì¥Á¥§¥Ã¥¯¤¢¤ê£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
577519500 nano sec¡ÊÌó1.1ÇÜ¡Ë
154799700 nano sec¡ÊÌó£²ÇÜ¡Ë
404159400 nano sec¡ÊÌó1.2ÇÜ¡Ë
²¼¤Î¤È¤êÊý¤ò¥½¡¼¥ÈºÑ¤ßÂбþ¤ËÊѹ¹ÈÇ£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¥½¡¼¥ÈºÑ¤ß¤È¡à200000
542523900 nano sec
144345300 nano sec
832237900 nano sec
ÁÞÆþ¥½¡¼¥ÈÆþ¤ê¥½¡¼¥È¥Æ¥¹¥È£µ£°£°Ëü¸Ä¡¢¤½¤Î¤Þ¤Þ¤È¡à200000
548752100 nano sec
946397300 nano sec
ºÇ¿·¥³¥á¥ó¥È
2023-03-05
2020-09-15