附上解题思路,具体的内容在注释中另行补充:
- 首先定义两个指针分别为 left、right,一个在左边,一个在右边
- 然后两个指针相向而行(由于不确定循环次数,所以推荐使用 while 循环),当 left 遇到偶数时停止,当 right 遇到奇数时停止
- 同时判断两个指针是否碰撞,也就是判断
(left < right)
- 如果未碰撞,则交换 left 和 right 位置的值
- 最后将以上逻辑放入 while 循环中,当
(left < right)
时已知循环执行即可
下面附上代码:
public class demo1 {
public static void main(String[] args) {
//定义一个固定元素的数组,利用指针将奇数放在右边,偶数放在左边
int[] arr = {
11<