剑指offer--面试题14--收获
按照作者的说法,作为应届毕业生的我来说,如果能写出初级程序员的参考代码来解决面试题14就可认为过关了。。。
参考代码如下:
void ReorderOddEven_1(int *pData, unsigned int length) { if(pData == NULL || length == 0) return; int *pBegin = pData; int *pEnd = pData + length - 1; while(pBegin < pEnd) { // 向后移动pBegin,直到它指向偶数 while(pBegin < pEnd && (*pBegin & 0x1) != 0) pBegin ++; // 向前移动pEnd,直到它指向奇数 while(pBegin < pEnd && (*pEnd & 0x1) == 0) pEnd --; if(pBegin < pEnd) { int temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; } } }
说明:这里的pBegin < pEnd 都是很有必要的!!!
(该框架务必记住!!!)
如果要秒杀offer,则需要考虑程序功能的扩展性,比如用函数指针来代替各种各样的分类标准。。。
解耦提高了代码重用性
目标:1、快速的思维能力;2、提高代码重用性。
清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己
-- 共勉