【排序】插入排序,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)