输入:一个整数数组
输出:使奇数位于偶数前面
思路:用起始两个指针,第一个指针向后移动,第二个指针向前移动,当第一个指针指向偶数第二个指针指向奇数将二者交换,直到两个指针相遇
public class ReorderOddEven{
// 剑指offer第14题
public void reorderOddEven(int[] array){
int start = 0;
int end = array.length - 1;
while (start < end){
while ((array[start] & 1) == 1){
start ++;
}
while ((array[end] & 1) == 0){
end -- ;
}
swap(array,start,end);
}
}
private void swap(int[] array, int start, int end) {
int temp = array[start];
array[start] = array[end];
array[end] = temp;
}
}
本文介绍了一种简单的奇偶排序算法,该算法通过双指针技术实现,能够在原地将数组中的奇数移动到偶数之前。算法使用了两个指针,一个从数组头部开始向后移动,另一个从数组尾部开始向前移动,当遇到符合条件的元素时进行交换,直至两指针相遇。
5948

被折叠的 条评论
为什么被折叠?



