>>22
/* 挿入法 */
void insertion_sort(int* first, int* last)
{
    ptrdiff_t length = last - first;
    for(ptrdiff_t i = 1; i < length; ++i)
    {
        int temp = *(first + i);
        int j = i - 1;
        for(; j >= 0 && temp < *(first + j); --j)
            *(first + j + 1) = *(first + j);
        *(first + j + 1) = temp;
    }
}
(続)