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 }