#include <iostream>
#include <vector>
using namespace std;
void Swap(int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}
void Show(vector<int> & vec)
{
vector<int> :: iterator it = vec.begin();
for(it;it != vec.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
void InsertSort(vector<int> & vec)//时间复杂度O(n2) 空间复杂度O(1) 稳定
{
int len = vec.size();
if(len < 2)return ;
int tmp = 0;
int j = 0;
for(int i = 1;i < len;++i)
{
tmp = vec[i];
for(j = i-1;j >= 0;--j)
{
vec[j+1] = vec[j];
if(vec[j] < tmp)
{
break;
}
}
vec[j+1] = tmp;
}
}
int main()
{
int arr[10] = {10,9,8,7,6,4,5,2,1,3};
vector<int> vec(arr,arr+10);
Show(vec);
InsertSort(vec);
Show(vec);
}
直接插入排序
最新推荐文章于 2025-03-09 23:46:07 发布