算法
一 奇偶排序
奇偶排序。给定一个数组,数组中元素有奇数有偶数。要求对数组进行处理,使得数组的左边为奇数,右边为偶数
public static void partition(int[] arr,int n){ int i = 0; int j = n-1; while(true){ while(i<j && arr[i]%2 == 1) i++; while(i<j && arr[j]%2 == 0) j--; if(i<j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } if (i>j){ break; } i++; j--; } for (int k=0;k< arr.length;k++){ System.out.print(""+arr[k]); } }
二 求单链表的中间元素。
对于单链表求中间元素的问题,经典的作法是采用两个指针,初始化都指向链表表头,移动开始时,快指针移动两步,慢指针移动一步。
当快指针的next为null或者快指针为null的时候,慢指针所指的就是单链表的中间元素(注意奇数个元素和偶数个元素的处理)。
@ https://blog.csdn.net/qq_26222859/article/details/61913990
@ https://blog.csdn.net/qq_20110551/article/details/81463489
@ https://blog.csdn.net/windflybird/article/details/80598036