【排序】插入排序,C++实现

# 基本思想

        每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

插入排序

# C++代码

#include<iostream>
#include<vector>
using namespace std;

void insertSort(vector<int> vec)
{
    if(vec.size()>0)
    {
        for(int i=1;i<vec.size();++i)
        {
            int j = i;

            while(j-1>=0 && vec[j-1]>vec[j])
            {
                vec[j-1] = vec[j-1]+vec[j];
                vec[j]   = vec[j-1]-vec[j];
                vec[j-1] = vec[j-1]-vec[j];
                --j;
            }
        }

        for(int i=0;i<vec.size();++i)
            cout<<vec[i]<<endl;
    }

}
int main()
{
    vector<int> vec={9,3,1,4,2};
    insertSort(vec);
    return 0;
}

#性能分析

  • 稳定性:稳定
  • 适用性:顺序存储和链式存储的线性表。
  • 空间效率:O(1)
  • 时间效率:最好O(n),最差O(n2)

     

posted @ 2018-04-05 20:34  wanglei5205  阅读(1233)  评论(0编辑  收藏  举报
levels of contents