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 }