Insertion插入排序

        原谅我接着偷懒,是真的没有什么写的内容了啊,好怀疑他们那些大佬是怎么那么多的文章和技术分享的,自闭中ing

  • 最好情况的时间复杂度是 O(n),最坏情况的时间复杂度是 O(n2),然而时间复杂度这个指标看的是最坏的情况,而不是最好的情况,所以插入排序的时间复杂度是 O(n2)。

Git地址

public override void SortOrder(int[] arr)
{           
    int _length = arr.Length;

    for (int i = 1; i < _length; i++)           //遍历除0索引之外的全部元素
    {
        int _temp = arr[i];                     //拿到0索引的元素
        for (int j = i - 1; j >= 0; j--)        //便利还没被用来对比过的元素
        {
            if (_temp < arr[j])                 //如果被便利的元素小于但当前元素
            {
                arr[j + 1] = arr[j];            //当前元素向后移
                arr[j] = _temp;
            }
            else
            {
                break;                          //否则,退出当前 被遍历的循环,进入下一个被遍历
            }
        }
    }
}

Insertion插入排序_第1张图片


  • 博客杂货铺
  • GoF23 种设计模式的分类和功能

你可能感兴趣的:(算法,排序算法,数据结构,算法,插入排序)