*** Insertion Sort ***
 

                                                              
 
 

                  ¡ÒèѴàÃÕ§Ẻá·Ã¡ ( Insertion sort )
           ¤×Í ¡ÒèѴàÃÕ§¢éÍÁÙÅâ´Â¹Ó¢éÍÁÙÅ·Õè¨Ð·Ó¡ÒèѴàÃÕ§¹Ñé¹ æ ä»á·Ã¡äÇéã¹¢éÍÁÙÅ·ÕèÁÕ¡ÒèѴàÃÕ§àÃÕºÃéÍÂáÅéÇ ³ µÓá˹觷Õè¶Ù¡µéͧ ´Ñ§¹Õé¤×Í
         ¶éÒÊÁÁµÔÇèÒÁÕÍÒÃìàÃÂì [A] «Öè§ÁÕ¢éÍÁÙÅ N µÑÇ A[1] , A[2] , A[3] , ... , A[N] ã¹Ë¹èǤÇÒÁ¨Ó ÇÔ¸Õ¡Ò÷ӧҹ¢Í§¡ÒèѴàÃÕ§Ẻá·Ã¡ ¡ç¤×Í scan array [N] A[1] ¨Ò¡ A[N] áÅзӡÒÃÃá·Ã¡áµèÅТéÍÁÙÅ A[K] ã¹ subarray ·ÕèÁÕ¡ÒèѴàÃÕ§¢éÍÁÙÅàÃÕºÃéÍÂáÅéÇ A[1] , A[2] , A[3] , ... , A[K-1] ³ µÓá˹觷Õè¶Ù¡µéͧ
            ¡Ò÷ÕèàÃÒ¨Ðá·Ã¡ A[K] ã¹µÓá˹觷Õè¶Ù¡µéͧ¢Í§ subarray ·Õè¶Ù¡¨Ñ´àÃÕ§ÅӴѺäÇéáÅéǹÑé¹ àÃÒµéͧà»ÃÕºà·Õº A[K] ¡Ñº A[K-1] , A[K] ¡Ñº A[K-2] , A[K-3] ä»àÃ×èÍÂ æ ¨¹¡ÃзÑè§¾º¢éÍÁÙÅ A[J] µÑ§áá·Õè A[J] <= A[K] áÅéÇ¢éÍÁÙŵÓáË¹è§ A[K-1] , A[K-3] , ... , A[J+1] ¨Ð¶Ù¡·Ó¡ÒÃàÅ×è͹仢éҧ˹éÒ 1 µÓá˹è§áÅéÇ A[K] ¨Ð¶Ù¡á·Ã¡ã¹µÓá˹觷Õè J+1 ááã¹ÍÒÃìàÃÂì
 
                          µÑÇÍÂèÒ§¡Ò÷ӡÒâͧ Insertion sort

            ÊÁÁµÔãËéÁÕµÑÇàÅ¢ÍÂÙè 10 µÑÇ ¤×Í ( 9 6 1 7 8 4 2 3 5 10 )
            ¡Òà sort  Ẻ Insertion ¤×Í
            1. ¨Ñº¤Ùè A[L] ¡Ñº A[L+1] ¡è͹ áÅéǹӵÑÇàÅ¢ 2 µÑÇÁÒà»ÃÕºà·Õº¡Ñ¹ ãËéµÑÇàÅ¢·ÕèÁÕ¤èÒ¹éÍ¡ÇèÒä»ÍÂÙè˹éÒ ( àÁ×èÍ L=1 )
                ªØ´µÑÇàÅ¢à´ÔÁ  9 6 1 7 8 4 2 3 5 10
                 ËÅѧ¨Ò¡¼èÒ¹¡Ãкǹ¡ÒâéÍ1 áÅéÇ¡ÒÃàÃÕ§µÑÇàÅ¢ãËÁè¨Ðà»ç¹
                 6 9 1 7 8 4 2 3 5 10
            2. àÁ×èÍ L = 2 ¡ÒèѺ¤Ùè¨Ð¡ÅÒÂà»ç¹ A(2) ¡Ñº A(3) áÅéÇà»ÃÕºà·Õº¡Ñ¹ÍÕ¡ µÑÇàÅ¢ªØ´ä˹¹éÍ¡ÇèÒàÍÒ¢Öé¹Ë¹éÒ  ´Ñ§¹Ñ鹨ҡµÑÇàÅ¢ªØ´º¹àÁ×èͼèÒ¹¡Ãкǹ¡ÒâéÍ 2 ¨Ðà»ç¹
                 6 1 9 7 8 4 2 3 5 10
            3. áÅéǤèÒ L ¨Ðà·èҡѺ 1 ÍÕ¡ ¡ÒèѺ¤Ùè¨Ð¡ÅÒÂà»ç¹ A(1) ¡Ñº A(2) (6 , 1) ¡çàªè¹à´ÕÂǡѹãËé¹ÓµÑÇàÅ¢·ÕèÁÕ¤èÒ¹éÍ¢Öé¹Ë¹éÒ ´Ñ§¹Ñé¹ËÅѧ¨Ò¡¼èÒ¹¢éÍáÅéÇ ¢éÍÁÙŨСÅÒÂà»ç¹
                 1 6 9 7 8 4 2 3 5 10
                 ¢éÍÁÙÅ㹪èǧ¹Õé  A(1) ¶Ö§ A(3) àÃÕ§¡Ñ¹áÅéÇ
            4. ¤ÃÒǹÕéàÁ×èÍàÃÕ§ 3 µÑÇàÊÃç¨áÅéÇ ¤èÒ L ¨Ðà·èҡѺ 3 µÑÇ·Õè¨Ðµéͧ¹ÓÁҨѺ¤Ùè¤×Í A(3) ¡Ñº A(4) (9 ¡Ñº 7) áÅéǹÓÁÒà»ÃÕºà·Õº¡Ñ¹àªè¹·Ø¡¢éÍ
                 1 6 7 9 8 4 2 3 5 10
            5. áÅéǤèҢͧ L ¨Ðà·èҡѺ 2 ¨Ñº¤Ùè A(2) ¡Ñº A(3) ã¹·Õè¹Õé¤×Í 6 ¡Ñº 7 áÅéÇà»ÃÕºà·ÕºàÍÒµÑǹéÍÂäÇé˹éÒ ¨Ò¡¹Ñé¹ L ¡ç¨Ðà·èҡѺ 1  ¨Ñº¤Ùè A(1) áÅÐ A(2) (1 ¡Ñº 6) à»ÃÕºà·Õº¡Ñ¹
                àÁ×èÍÁÒ¶Ö§¢Ñé¹¹Õé A(1) ¶Ö§ A(4) ¨ÐàÃÕ§¨Ò¡¹éÍÂä»ÁÒ¡áÅéÇ ´Ñ§¹Õé
                 1 6 7 9 8 4 2 3 5 10
            6. àÁ×èÍ L = 4 à»ÃÕºà·Õº A(4) ¡Ñº A(5)
                 1 6 7 8 9 4 2 3 5 10
            7. ¡ÅѺ价Ӵѧ¢éÍ 3 ËÃ×Í 6 àÃ×èÍ æ 仨¹¡ÃзÑè§ L = 9 ¢éÍÁÙÅ·Õèä´é¨ÐàÃÕ§ÅӴѺ¡Ñ¹´Ñ§¹Õé
                 1 2 3 4 5 6 7 8 9 10
                                µÑÇÍÂèÒ§ source code Insertion sort