package com.xiaoysec;

 /**
* 下面是面试趣医网技术面的时候出现的一个简单的题目 题目的要求是将一个数组中的奇数和偶数进行分离 以奇数在前一部分为例进行解题
* 算法的主要思想是双指针法对前后两个元素进行奇偶判断
*
* @author xiaoysec
*
*/
public class Sort {
// 完成数组奇偶数的
public void split(int[] arr) {
int temp = 0;
for (int i = 0, j = arr.length-1; i <= j;) {
// 左边是奇数 右边是偶数的情况
if ((jishu(arr[i])) == 1 && (jishu(arr[j])) == 0) {
i++;
j--;
}
// 左边是奇数 右边是奇数
if ((jishu(arr[i])) == 1 && (jishu(arr[j])) == 1) {
i++;
}
// 左边是偶数 右边是奇数
if ((jishu(arr[i]) == 0) && (jishu(arr[j])) == 1) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
// 两边都是偶数
if ((jishu(arr[i])) == 0 && (jishu(arr[j])) == 0) {
j--;
}
} } // 奇偶数判断函数
public int jishu(int k) {
if (k % 2 == 0)
return 0;
else
return 1;
} public static void main(String[] args) {
int[] arr = new int[] {4,6,8,0,1,3,7};
System.out.println("before sort:");
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
Sort s = new Sort();
s.split(arr);
System.out.println("after sort:");
for (int i : arr) {
System.out.print(i + " ");
}
} }

InterviewProblems的更多相关文章

随机推荐

  1. Segment FRAM_DATA must be defined in a segment definition option (-Z, -b or -P)

    1. 网上说这个回答是 协议栈和IAR版本号不一样,这算什么神马问题 2. 网上的解决的方法是改动 options-> link -> config -> 改动里面的连接文件,可是怎 ...

  2. IE下图片切换的时候,图片总是切换不成功---根本问题是IE缓存图片

    作为WEB设计者,为了在网页展示上加强用户体验,经常会利用图象载入显示状态方法,这自然需要Image对象的onload事件. 在firefox浏览器下完成开发后,可是在IE浏览器中进行调试总不能被调用 ...

  3. Apache Tiles 2.x 应用指南(转)

    转自:http://jaymsimusic.iteye.com/blog/1138906 Apache Tiles 2.x 应用指南 博客分类: Apache Tiles   Jakarta Tile ...

  4. python基础之python中if __name__ == '__main__': 的解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...

  5. DBI && MySQL lock

    DBI: url set isolation to dirty read my $npmdb_dbh = DBI->connect("DBI:ODBC:npmdb", &qu ...

  6. Spring2.0集成Quartz1.5.2调度框架

    Quartz是个开放源码项目,提供了丰富的作业调度集.希望您在阅读完本文并看过代码演示后,可以把Quartz的基本特性应用到任何Java™应用程序中.现代的Web应用程序框架在范围和复杂性方面都有所发 ...

  7. 模拟app上商品详情点击图片放大并且可以切换大图

    主要使用swiper插件,这里使用各小技巧,就是用两个swiper容器,点击一个小图容器,去让大图容器展示出来 小图容器 <div class="q_banner"> ...

  8. 001OC的结构解析

    Xcode通过.m扩展名来表示文件使用的是OC代码,C编译器处理.c文件,c++编译器处理cpp文件.所有编译工作默认由LLVM处理,这个编译器能够理解C语言的全部3个变体. #import<F ...

  9. UML-状态图,顺序图,活动图

    一.编写用例文档      1.用例的内容:   用例编号   用例名  执行者  前置条件  后置条件  基本路径  扩展路径  字段列表  业务规则                         ...

  10. centos6.5 eclipse C/C++开发环境