插入排序


using System;


 /// <summary>
 /// 插入排序 的摘要说明。
 /// </summary>
 public class InsertSort
 {
  public static void Main()
  {
   //int[] intary=

{35,58,47,96,12,45,78};
   int[] intary={10,8,7,6,5,4,3,2,1,1};
   Console.WriteLine("排序前,输出数组如

下:");
   printArray(intary);
   insertSort(intary);
   Console.WriteLine("插入排序之后,输出

数组如下:");
   printArray(intary);
  }
  private static void printArray(int[] tmpary)
  {
   
   foreach(int tmpnum in tmpary)
   {
    Console.Write(tmpnum+"\t");
   }
   Console.WriteLine();
  }
        private static void insertSort(int[] ary)
  {
   int tmp;
   for(int i=1;i<ary.Length;i++)//从第2

个元素开始,准备待插入前方位置
   {
    for(int j=0;j<=i;j++)//在待插

元素前方寻找比它大的元素
    {
     if(ary[i]<ary[j])//找

到比它大的元素
     {
      tmp=ary[i];//

将待插元素保存下来
      for(int

k=i;k>j;k--)//从待插位置向前移动
      {
       ary

[k]=ary[k-1];//将前面元素一个个向后移动
      }
      ary[j]=tmp;//

在找到的位置插入待插元素
     }
    }
   }
  }
 }

原文地址:https://www.cnblogs.com/jasonjiang/p/1763543.html