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 }