• 排序算法---插入排序


    基本思想:

    插入排序是一种比较直观的排序算法。具体逻辑为:

    1.从第一个元素开始,该元素可以认为已经被排序。

    2.取出下一个元素,在已经排序的元素序列中从后向前扫描。

    3.如果钙元素小于前面的元素(已排序),则依次与前面元素进行比较,如果小于则交换,直到找到大于该元素的就停止。

    4.如果该元素大于前面的元素(已排序),则重复步骤2。

    5.重复步骤2~4直到所有元素都排序好。

    时间复杂度:

        最好情况:

              比较:N-1

              交换:0

        最坏情况:

              比较:N2/2

              交换:N2/2

         平均情况:

              比较:N2/4

              交换:N2/4

    具体实现:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DataStructure
    {
        public class InsertionSort<T>:BaseSort<T> where T:IComparable<T>
        {
            public override void Sort(T[] array)
            {
                if (array != null)
                {
                    for (int i = 1; i < array.Length; i++)
                    {
                        for (int k = i; k > 0; k--)
                        {
                            if (array[k].CompareTo(array[k - 1]) < 0)
                                base.Swap(array, k - 1, k);
                            else
                                break;
                        }
                    }
                }
                else
                    throw new ArgumentNullException();
            }
        }
    }
  • 相关阅读:
    时间使用
    关于Dubbo说明及备注
    jQuery 的function简单备注
    Eclipse插件
    存储过程和视图的区别
    easyUi jqgrid search
    Python3内置函数——reversed() = 翻转我的世界
    你追求的目标正确吗
    Python3正则表示式(3)
    英语口语学习笔记(13)
  • 原文地址:https://www.cnblogs.com/fang-beny/p/3601076.html
Copyright © 2020-2023  润新知