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项目 手机安全卫士(代码最全,注释最详细)之十二 设置中心的界面
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- Android_Layout_xml布局
本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/11840079 1.构建xml布局文件 使用android提供的xml ...
- Swift中的集合类型
一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人 员的追捧,其热衷程度并不亚于当红巨星Tay ...
- JQuery————基础&&基础选择器
环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...
- Oracle数据库按属性成绩查询
create or replace function bb return nvarchar2as-----------自定义游标类型type class_student is record( snam ...
- EventBusException:xxxx has no methods onEvent
使用第三方框架EventBus,在register时出现Exception:xxxx has no methods onEvent. 场景:在Activity中没有接收事件,只是需要发送事件,但是有对 ...
- AutoCompleteTextView 和 TextWatcher 详解
TextWatcher 监测Edittext内容的变化------------------------------------------------------------------------- ...
- js获取时间和日期,字符串和时间戳之间的转换
//获取当前时间: var myDate = new Date();//当前时间 var year = myDate.getFullYear();//当前年份 var month = myDate.g ...
- wampserver配置memcache
我用的环境是win7 64位的操作系统,wampserver也是64位,版本是2.5的,其中带的php版本是5.5的. 配置memcache的步骤: 第一步,先下载memcahed.exe和php_m ...
- Oracle ORA-01555 快照过旧 说明
oracle高级知识(1) ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo 已经不存在了, 这个时候就会报ORA-0 ...