1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 插入排序法 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 int[] nums={ 23, 23, 44, 66, 76, 98, 11, 3, 9, 7 }; 14 int[] arr = Sort(nums); 15 foreach (int i in arr) 16 { 17 Console.WriteLine(i.ToString()); 18 } 19 Console.ReadKey(); 20 } 21 /// <summary> 22 /// 插入排序,就是检查第i个数字,如果在它的左边的数字比它大,进行交换, 23 /// 这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。 24 /// 插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。 25 /// </summary> 26 /// <param name="arr"></param> 27 /// <returns></returns> 28 29 public static int[] Sort(int[] arr) 30 { 31 for (int i = 1; i < arr.Length; i++) 32 { 33 int temp = arr[i]; 34 int j = i; 35 while ((j > 0) && (arr[j - 1] > temp))//判断条件检查数的序号>0且检查数前一个比它大 36 { 37 arr[j] = arr[j - 1];//交换顺序 38 j--; 39 } 40 arr[j] = temp; 41 } 42 return arr; 43 } 44 } 45 }