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

2016-02-19 09:20 13 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是数组重排序(如何将所有奇数都放在所有偶数前面)的深入分析,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

这里介绍一种高效的能在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] + " ");
  }
 }
}

来源:http://www.tulaoshi.com/n/20160219/1590398.html

延伸阅读
提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那...
标签: 妊娠 分娩方式
妊娠并子宫肌瘤的分娩方式 网友:丁医生你好!我现在孕36周整,子宫左前壁有一大(4cm)一小(2cm)2个,现在不知道该生还是剖腹产,很矛盾,请给我答复好吗 ? 丁新:其实的发生率是很高的,妊娠合并也是比较常见的一种疾病,如果子宫肌瘤没有影响胎头的下降,子宫肌瘤不是太大,没有发生变性,应该说不会影响你的分娩方式的选tulaos...
首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,示意图如下,其中包含编译、链接和签名等: (1)使用aapt工具生成R.java文件 可以先通过搭建好的Eclipse开发环境创建一个未编译的Android工程,记的一定要将Eclipse中Project菜单下的Build Automatically选项前面的对勾去掉后再去创建工程。创建好未编译的工...
Java 内存划分:     在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。 程序计数器:     作用是当前线程所执行的字节吗的行号指示器。Java...
原理是使用LinkedHashMap来实现,当缓存超过大小时,将会删除最老的一个元组。 实现代码如下所示 代码如下: import java.util.LinkedHashMap; import java.util.Map; public class LRUCache {  public static class CachedData {   private Object data = null;   private long time = 0;   private boole...

经验教程

278

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部