这是插入排序吗?

Mic*_*ICE 0 c++ algorithm insertion-sort

我正在阅读"算法简介"并阅读插入排序.
我试图在没有先阅读解决方案的情况下自己实现它.

这是我的解决方案,这是插入排序吗?

#include <iostream>

using namespace std;

int main()
{
    // initialize an unsorted array
    int a[] = {5,6,4,7,3,8,2,9,0,1};

    // define variables
    int i,j,tmp;

    for (int j=1; j<10; ++j)
    {
        for (int i=0;i<j;++i)
        {
            if (a[j] < a[i])
            {
                tmp = a[j];
                a[j] = a[i];
                a[i] = tmp;
            }
        }

    }

    for (i=0;i<10;++i)
    {
        cout << a[i] << endl;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

好的,我已经阅读了,并理解为什么它不是插入排序...这要好得多.

   #include <iostream>

    using namespace std;

    int main()
    {
        // initialize an unsorted array
        int a[] = {5,6,4,7,3,8,2,9,0,1};

        // define variables
        int i,j,key,c;

        for (int j=1; j<10; ++j)
        {
            key = a[j];
            i = j - 1;

            while(i>=0 && a[i] > key)
            {
                a[i+1] = a[i];
                i = i - 1;
            }
            a[i+1] 

= key;
        ++c;
    }

    for (i=0;i<10;++i)
    {
        cout << a[i] << endl;
    }

    cout << endl << c << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

SKi*_*SKi 7

您的解决方案似乎是冒泡排序,而不是插入排序.