剑指offer 面试题14 把数组所有偶数放在奇数后面
2016-06-07 00:09
447 查看
本题有两种办法:
1.。O(n*n)的方法
2.。O(n)的方法
代码如下:
本题如何实现可扩展性,即把数组中所有负数放正数前面, 或把所有被3整除的数放不被3整除的数前面
参考:实现可重用性即可扩展性 针对剑指offer 面试题14 把数组所有偶数放在奇数后面" http://blog.csdn.net/nx188/article/details/51654882
1.。O(n*n)的方法
2.。O(n)的方法
代码如下:
package algorithm; public class Move2NumberAfter { /** * move2NumberAfter 是O(n*n)的办法 * @param array */ public static void move2NumberAfter(int array[]) { for(int i=0;i<array.length;i++) { if(array[i] % 2 ==0) { move2Last(array, i); } } } private static void move2Last(int array[], int index) { int temp = array[index]; for(int i = index+1;i<array.length;i++) { array[i-1] = array[i]; } array[array.length-1] = temp; } private static void display(int[] array) { for(int i = 0;i<array.length;i++) System.out.println(array[i]); } /** * 第一位和最后一位分别两个指针,类似快排的一趟,时间复杂度是O(n) * @param args */ private static void twoPointer(int[] array) { int firstPointer = 0; int lastPointer = array.length-1; while(firstPointer < lastPointer ) { while(array[firstPointer] %2 == 1) firstPointer++; while(array[lastPointer] %2 == 0) lastPointer--; if(firstPointer < lastPointer) exchange(array, firstPointer, lastPointer); } } private static void exchange(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } public static void main(String[] args) { int array[] = {3,1,2,5,7,8,9,3,10,1}; // move2NumberAfter(array); twoPointer(array); display(array); } }
本题如何实现可扩展性,即把数组中所有负数放正数前面, 或把所有被3整除的数放不被3整除的数前面
参考:实现可重用性即可扩展性 针对剑指offer 面试题14 把数组所有偶数放在奇数后面" http://blog.csdn.net/nx188/article/details/51654882
相关文章推荐
- 一个32岁入门的70后程序员给我的启示
- Java面试题(判断集合中是否有两个数的和等于某个给定整数)
- SQL数据库面试题以及答案
- 大侠程序员的江湖传奇
- 创业如何正确选择技术支持?看了不爽可以报警!
- 36氪上的这七家程序员网站你都了解吗?
- 剑指Offer----面试题28----扩展:从1到n中随意取若干数使之与某一数相等
- JAVA多线程和并发基础面试问答
- Hibernate常见面试题
- 程序员的十种级别
- 剑指Offer----面试题28----扩展:八皇后问题
- 剑指Offer----面试题28----扩展:字符的所有组合
- 20160606 码农头条日报
- 剑指Offer----面试题28:字符串的排列 & 去重
- 剑指offer 面试题3 二维数组中的查找
- iOS面试题
- java面试题
- 从小工到专家 ——读《Java程序员职场全攻略》有感
- 十道海量数据处理面试题与十个方法大总结
- 程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。