插入排序
插入排序
void insertionSort( ElementType A[], int N )
{
int i, j;
ElementType tmp;
for( i = 1; i < N; i++ )
{
tmp = A[i];
for( j = i; j > 0 && A[j-1] > tmp; j-- )
{
A[j] = A[j-1];
}
A[j] = tmp;
}
}
Key Mind:
将下标i读取到的值保存(隐喻腾空i的位置),第二个for循环指针回走检查,只要比与保存的值大就往后移。j最大值为N-1,所以两个for循环总次数为N^2 ,即时间复杂度为O(N^2 )。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 876208453@qq.com
文章标题:插入排序
本文作者:Cai Jun
发布时间:2019-02-26, 11:24:25
最后更新:2019-02-28, 03:28:21
原始链接:http://johncaijun.github.io/2019-02-27-插入排序/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。