输入一个整数数组,调整数组中数字的顺序,使得所有的奇数位于数组的前半部分。

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         }
原文地址:https://www.cnblogs.com/tewuapple/p/2468024.html