直接插入排序

简介:

图示      

插入排序的基本思想是:对于数组前边部分已经是排好序的了,对于接下来的元素查找其在前面的位置,插入之。如下图中1 2 4 7 已经排好序,接下来找到2的位置,插入到1和3之间。之后同样处理4和9.

                      

参考代码

复制代码
void insertSort(int A[], int lens)
{
    if (A == NULL || lens <=0)
        return;
    for (int i = 1; i < lens; ++i)
    {
        for (int j = i-1; j>=0 && A[j] > A[j+1]; --j)
            swap(A[j], A[j+1]);
    }
}
复制代码

测试

  View Code

复杂度

  • 空间复杂度:O(1)
  • 时间复杂度
    • 最好(已经升序)O(n)
    • 最差(已经降序)O(n2

稳定性

稳定

 




本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/archive/2013/02/24/2925033.html,如需转载请自行联系原作者

相关文章
|
1月前
|
搜索推荐 C++
C++插入排序的实现
C++插入排序的实现
|
1月前
直接插入排序与希尔排序
直接插入排序与希尔排序
24 2
|
2月前
|
搜索推荐
直接插入排序和希尔排序
直接插入排序和希尔排序
34 0
|
3月前
|
存储 搜索推荐 算法
插入排序(一)——直接插入排序与希尔排序
插入排序(一)——直接插入排序与希尔排序
31 1
|
4月前
|
搜索推荐 算法 测试技术
排序算法:插入排序(直接插入排序、希尔排序)
排序算法:插入排序(直接插入排序、希尔排序)
37 0
|
6月前
插入排序与希尔排序
插入排序与希尔排序
22 0
|
8月前
|
搜索推荐 测试技术 C++
【插入排序】直接插入排序 与 希尔排序
【插入排序】直接插入排序 与 希尔排序
|
9月前
InsertSort-->直接插入排序
InsertSort-->直接插入排序
|
10月前
|
算法
插入排序之直接插入排序
一、基本思想: 依次将每个记录(无序表)插入到一个已排好序的有序表中,得到一个新的,记录增加1的有序表;