数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析

a657711643

a657711643

2016-02-19 09:20

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析,一起来学习了解下吧!
这里介绍一种高效的能在O(n)时间复杂度内完成的算法。
核心思想是:定义两个指针,一个指针A从前往后扫描,一个指针B从后往前扫描。指针A扫描到偶数暂停,指针B扫描到奇数暂停,然后交换着两个数,交换之后继续如上述扫描和交换,直到指针A和指针B重合停止。
这个算法的Java代码如下:
代码如下:

package Reorder;
public class Reorder {

 public static void main(String[] args) {
  int[] list = { 1, 2, 3, 4, 5, 7, 9, 11 };
  reorderOddEven(list);
 }
 public static void reorderOddEven(int[] list) {
  int length = list.length;
  for (int i = 0; i length; i++) {
   System.out.print(list[i] + " ");
  }
  System.out.print("n");
  int begin = 0;
  int end = length - 1;
  while (begin end) {
   while (begin end && (list[begin] & 0x1) != 0)
    begin++;
   while (begin end && (list[end] & 0x1) == 0)
    end--;
   if (begin end) {
    int temp = list[begin];
    list[begin] = list[end];
    list[end] = temp;
   }
  }
  for (int i = 0; i length; i++) {
   System.out.print(list[i] + " ");
  }
 }
}
展开更多 50%)
分享

猜你喜欢

数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析

编程语言 网络编程
数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析

如何将MAC系统Safari浏览器所有窗口都变为标签页

电脑入门
如何将MAC系统Safari浏览器所有窗口都变为标签页

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

判断函数是奇数还是偶数

ASP
判断函数是奇数还是偶数

深入分析java文件路径的详解

编程语言 网络编程
深入分析java文件路径的详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

可在所有设备上同步照片“MyShoebox”测评

手机软件 应用软件
可在所有设备上同步照片“MyShoebox”测评

如何将网页所有元素保存在一个文件中

Web开发
如何将网页所有元素保存在一个文件中

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

增强的 JavaScript 的 trim 函数的代码

增强的 JavaScript 的 trim 函数的代码

我是拉线木偶 左右随你操控 - QQ图案分组

我是拉线木偶 左右随你操控 - QQ图案分组
下拉加载更多内容 ↓