当前位置:  编程技术>java/j2ee

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

    来源: 互联网  发布时间:2014-10-26

    本文导语:  这里介绍一种高效的能在O(n)时间复杂度内完成的算法。核心思想是:定义两个指针,一个指针A从前往后扫描,一个指针B从后往前扫描。指针A扫描到偶数暂停,指针B扫描到奇数暂停,然后交换着两个数,交换之后继续如上...

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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php实现数组筛选奇数和偶数示例
  • php数组筛选奇数与偶数示例
  • C++ Strings(字符串) 成员 data():返回内容的字符数组形式
  • C++指针数组、数组指针、数组名及二维数组技巧汇总
  • C++ Strings(字符串) 成员 copy():将内容复制为一个字符数组
  • c#基础之数组与接口使用示例(遍历数组 二维数组)
  • C++ Strings(字符串) 成员 c_str():将字符串以C字符数组的形式返回
  • 如何将一个数组重新组成一个新的数组?
  • c++类对象数组初始化方式
  • php定义数组和使用示例(php数组的定义方法)
  • php数组函数之array_combine() 数组合并函数
  • 判断php数组维度(php数组长度)的方法
  • 请问怎么对一个数组排序,数组的内容是字符串,可能是单个也可能是多个?
  • 在我的java程序中,我从数据库中得到一批数据,不能确定是多少个,我要把它保存到我的java数组中,可是怎样才能向C++中的数组一样可以自由分配空间,在java中我必需预先指定大小,不会一定要用java中的那个可改变数组大小的类吧?
  • 一个String类型的Vector向量数组如何转换成一个String类型数组(请给代码)?
  • php数组函数之array_unique() 去除数组中重复的元素值
  • 将数组中指定数量的元素移动数组后面的实现代码
  • C++中关于[]静态数组和new分配的动态数组的区别分析
  • php判断一个数组是否为另一个数组子集的方法
  • 将二维数组转为一维数组的2种方法
  • 文件描述符集fd_set * readfds;书上这样描述数组元素的每一位对应一个文件描述符,第一个元素代表文件描述符0到31,数组第二个元素代表文
  • 深入理解数组指针与指针数组的区别
  • php数组函数之array_key_exists() 查找数组键名是否存在


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3