插入排序法

 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 }
原文地址:https://www.cnblogs.com/skyl/p/3782879.html