0%

直接插入排序

  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
#include<algorithm>
using namespace std;
void straight_insert_sort(int *a,int n)
{
for(int j=1;j<n;j++)
{
int i=j-1;
int x=a[j];//保存索引位置
while(a[i]<x&&i>=0)
{
a[i+1]=a[i];
i--;
}
a[i+1]=x;//将x传到下标为i+1的位置
}
}
int main()
{
int a[7]={7,5,1,4,3,2,6};
int n=7;
straight_insert_sort(a,n);
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}

时间复杂度
平均情况:O(n^2)
最好情况:O(n)
最坏情况:O (n^2)
空间复杂度:O(1)
稳定性:稳定