View Code
1 /// <summary> 2 /// 输入一个整数数组,调整数组中数字的顺序,使得所有的奇数位于数组的前半部分。 3 /// </summary> 4 /// <param name="arr">数组</param> 5 /// <param name="n">数组长度</param> 6 static void patition(ref int[] arr, int n) 7 { 8 if (n == 0 || n == 1) return; 9 int i = 0, j = n - 1; 10 11 int temp; 12 13 while (i < j) 14 { 15 16 if ((arr[i] & 1) == 1) //是奇数 17 { 18 19 i++; 20 21 continue; 22 23 } 24 25 if ((arr[j] & 1) == 0) 26 { 27 28 j--; 29 30 continue; 31 32 } 33 34 temp = arr[i]; 35 36 arr[i] = arr[j]; 37 38 arr[j] = temp; 39 40 i++; 41 42 j--; 43 44 } 45 46 } 47 48 /// <summary> 49 /// 输入一个整数数组,调整数组中数字的顺序,使得所有的奇数位于数组的后半部分。 50 /// </summary> 51 /// <param name="arr">数组</param> 52 /// <param name="n">数组长度</param> 53 static void patition2(ref int[] arr, int n) 54 { 55 if (n == 0 || n == 1) return; 56 int i = 0; 57 int j = 0; 58 59 int temp; 60 61 while (i < n) 62 { 63 64 if ((arr[i] & 1) == 1)//是奇数 65 { 66 67 i++; 68 69 continue; 70 71 } 72 73 temp = arr[i]; 74 75 arr[i] = arr[j]; 76 77 arr[j] = temp; 78 79 i++; 80 81 j++; 82 83 } 84 85 }