1 伪代码如下
、
2 分析
插入排序的最坏时间复杂度为O(n^2),最好复杂度O(n),平均复杂度O(n^2)
3 源代码
#include <iostream>
using namespace std;
void InsertSort(int *A,int len){
int j,i;
int key;
for (j=1;j<len;j++)
{
key=A[j];
i=j-1;
while (i>=0 && A[i]>key)
{
A[i+1]=A[i];
i--;
}
A[i+1]=key;
}
}
//
void ShowArry(int *A,int len){
for (int i=0;i<len;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
int main(int argc,char *argv[]){
//int A[]={5,4,3,2,1};
int A[]={3,1,4,2,5};
InsertSort(A,5);
ShowArry(A,5);
return 0;
}
本文深入探讨了插入排序算法的复杂度分析,并提供了一段C++源代码实现。从最坏、最好到平均情况,详细解释了其时间复杂度为O(n^2)的原因。代码示例清晰展示了算法步骤,帮助理解排序过程。
3573

被折叠的 条评论
为什么被折叠?



