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. Android使用Google推荐的联网框架Volley,让连接网络更加简单

    大家好.随着技术的进步.科技的发达,非常少有应用是单机的了,大部分都须要联网訪问server,曾经我们都用 httpclient和httpurlconnection,感觉是不是非常麻烦,而Google ...

  2. Android解析中国天气网的Json数据

    在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...

  3. 警惕:利用Dropbox链接散播的恶意软件

    趋势科技近期发现好几起利用热门文档代管服务Dropbox的垃圾邮件.邮件的内嵌链接会下载UPATRE恶意软件变种.UPATRE下面载恶意软件而恶名昭彰,当中包含ZBOT恶意软件.CryptoLocke ...

  4. DevExpress.GridControl.gridView的一些注意

    1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.Op ...

  5. MYSQL报Fatal error encountered during command execution.错误的解决方法

    {MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command executio ...

  6. C# 输入输出 常量变量

          //输出 Console.WriteLine("这是一行文字"); 自动回车的. Console.Write("Hello world");  不带 ...

  7. Spring-----事务配置的五种方式

    转载自:http://blog.csdn.net/hekewangzi/article/details/51712821

  8. com.sun.jdi.InvocationException occurred invoking method.

    文章来源于网络, 自己也遇到同样的问题,也是采用这样的方式解决的.原文链接http://zuiyanwangyue.iteye.com/blog/470638 在 HibernateDaoSuppor ...

  9. php学习网址

    后面会陆续维护此页. 1. php编程 此博客是网站www.beilei123.cn镜像,转载请注明出处.

  10. knockoutjs简单使用

    knockoutjs是一个不错的前端MVVM框架,极大的减轻了前端工作开发量,增加前端代码的维护性.主要特点:声明式绑定.依赖跟踪.模块开速开发. 如下代码(官方代码稍做修改) <p> 姓 ...