Algorithm backup ---- Insertion Sort(插入排序算法)

  Insertion sort is a simple sorting algorithm, a comparison sort in which the sorted array (or list) is built one entry at a time. It is much less efficient on large lists than more advanced algorithms such as quicksort,heapsort or merge sort. However, insertion sort provides several advantages:

  1. simple implementation

  2. efficient for (quite) small data sets

  3. adaptive, i.e. efficient for data sets that are already substantially sorted: the time compexity is O(n + d), where d is the number of inversions

  4. more efficient in practice than most other simple quadratic (i.e. O(n2)) algorithms such as selection sort or  bubble sort: the average running time is n2/4, and the running time is linear in the best case

  5. stable, i.e. does not change the relative order of elements with equal keys

  6. in-place, i.e. only requires a constant amount O(1) of additional memory space

  7. online, i.e. can sort a list as it receives it.

  Below is the implementation using C#:

///   <summary>
///  Insertion sort algorithm
///   </summary>
///   <param name="numbers"> numbers array to be sorted </param>
public   static   void  InsertionSort( int [] numbers)
{
    
for  ( int  i  =   1 ; i  <  numbers.Length;  ++ i)
    {
        
int  temp  =  numbers[i];
        
int  j  =  i;
        
// Find its place and insert.
         while  (j  >   0   &&  numbers[j  -   1 >=  temp)
        {
            numbers[j] 
=  numbers[j  -   1 ];
            j
-- ;
        }
        numbers[j] 
=  temp;
    }
}

 

Go to my home page for more posts

转载于:https://www.cnblogs.com/lantionzy/archive/2009/11/03/1595321.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值