简单选择排序与直接插入排序

 1         /// <summary>
 2         /// 直接插入排序
 3         /// </summary>
 4         /// <param name="data"></param>
 5         static void IsortCR(int[] data)
 6         { 
 7             for (int i = 1; i < data.Length; i++)
 8             {
 9                 bool isin = false;
10                 int mid = data[i];//取到基准数
11                 for (int j = i - 1; j >= 0; j--)
12                 {
13                     if (data[j] > mid)
14                     {
15                         data[j + 1] = data[j];//如果比基准数大就往后推
16                     }
17                     else
18                     {
19                         data[j + 1] = mid;//如果小于等于基准数,就把基准数插在这个数后面
20                         isin = true;
21                         break;//插入之后跳出循环
22                     }
23                 }
24                 if (isin == false)
25                 {
26                     data[0] = mid;//如果基准数没有被插入过,说明最小,放在0位置
27                 }
28             }
29 
30         }
31         /// <summary>
32         /// 简单选择排序
33         /// </summary>
34         /// <param name="data"></param>
35         static void IsortJD(int[] data)
36         {
37             for (int i = 0; i < data.Length - 1; i++)
38             {
39                 int min = data[i];//获取基准数作为最小值
40                 int minIndex = i;//获取基准数所在的索引
41                 for (int j = i + 1; j < data.Length; j++)
42                 {
43                     if (data[j] < min)
44                     {
45                         min = data[j];//取到所循环数的最小值
46                         minIndex = j;//取得最小值的索引
47                     }
48                 }
49                 if (minIndex != i)
50                 {
51                     int mid = data[i];
52                     data[i] = min;
53                     data[minIndex] = mid;//将最小值与基准数换位置
54                 }
55             }
56         }
原文地址:https://www.cnblogs.com/mazhijie/p/8410513.html