排序算法之插入排序

来源:互联网 发布:好看的运动鞋 知乎 编辑:程序博客网 时间:2024/05/14 04:30

插入排序的思想:循环遍历每一个待排序元素,每次将待排序元素插入到有序的数列中。


C#实现:

 /// <summary>       /// 插入排序       /// </summary>       /// <param name="source">待排序的数列</param>       private void insertSort(int[] source)       {           //循环数列,其中soure[i]为待排序的元素           for(int i=1;i<source.Length;i++)           {               int position = 0; //临时变量,记录soure[i]的插入位置               int j = i-1;                int key = source[i]; //保存关键字               //寻找soure[i]的插入位置               while (j >= 0)               {                   if (key > source[j])                   {                       break;                   }                   j--;               }               position = j + 1; //此时得到soure[i]的插入位置               int k = i;               //移动插入位置之后的元素               while(k>position)               {                   source[k] = source[k-1];                   k--;               }               //将关键字放在插入位置               source[position] = key;           }       }