InterviewProblems
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的更多相关文章
随机推荐
- Android使用Google推荐的联网框架Volley,让连接网络更加简单
大家好.随着技术的进步.科技的发达,非常少有应用是单机的了,大部分都须要联网訪问server,曾经我们都用 httpclient和httpurlconnection,感觉是不是非常麻烦,而Google ...
- Android解析中国天气网的Json数据
在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...
- 警惕:利用Dropbox链接散播的恶意软件
趋势科技近期发现好几起利用热门文档代管服务Dropbox的垃圾邮件.邮件的内嵌链接会下载UPATRE恶意软件变种.UPATRE下面载恶意软件而恶名昭彰,当中包含ZBOT恶意软件.CryptoLocke ...
- DevExpress.GridControl.gridView的一些注意
1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.Op ...
- MYSQL报Fatal error encountered during command execution.错误的解决方法
{MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command executio ...
- C# 输入输出 常量变量
//输出 Console.WriteLine("这是一行文字"); 自动回车的. Console.Write("Hello world"); 不带 ...
- Spring-----事务配置的五种方式
转载自:http://blog.csdn.net/hekewangzi/article/details/51712821
- com.sun.jdi.InvocationException occurred invoking method.
文章来源于网络, 自己也遇到同样的问题,也是采用这样的方式解决的.原文链接http://zuiyanwangyue.iteye.com/blog/470638 在 HibernateDaoSuppor ...
- php学习网址
后面会陆续维护此页. 1. php编程 此博客是网站www.beilei123.cn镜像,转载请注明出处.
- knockoutjs简单使用
knockoutjs是一个不错的前端MVVM框架,极大的减轻了前端工作开发量,增加前端代码的维护性.主要特点:声明式绑定.依赖跟踪.模块开速开发. 如下代码(官方代码稍做修改) <p> 姓 ...