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 }