奇数位于偶数前面O(n)

题目:输入一个整数数组,实现一个函数来调整该数组中的数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。

思路一:直接从头开始遍历,遇到偶数然后将后面的数全部向前移动,把这个偶数放到数组的最后。该方法使用的思想类似于冒泡算法:将偶数下沉。其时间复杂度相对较高O(n^2)

思路二:从排序的思路上学来的,一个标记数组头部,一个标记数组尾部。头部向后移动遇到偶数停止移动,尾部向前移动遇到奇数停止,然后交换两个数,依次下去,直到头部的标记大于或者等于尾部的标记便停止。相当于只将数组遍历了一遍便完成了任务。时间复杂度比思路一要低。

思路二的代码:

	public static void SortNums(int[] nums,int low,int high) {
		while(low


你可能感兴趣的:(Java)