C++面试题--寻找32位整数数组中第二大的数

来源:互联网 发布:手机淘宝客户端在哪 编辑:程序博客网 时间:2024/05/07 05:25

1 寻找32位整数数组中第二大的数

       最近碰到一道面试题,题目描述为:编写一个函数,需找32位整数数组中第二大的那个数。把题说给两朋友,他们都说很简单,把数组遍历一次,不就找到第二大的了么?!但是让实际敲敲代码,却犯难了,写了大概15分钟吧,感觉都写得不怎么好,函数写得乱,于是就自己动手写了一个,记录下来。

2 代码

int find_sec_max( int* parray, int length ){int secMax = MININTEGER;if ( NULL == parray || length <= 0 ){return secMax;}if ( length == 1 ){secMax = parray[ 0 ];}else{int max = parray[0];for( int index = 1; index < length; ++index ){if ( parray[index] >= max ){secMax = max;max = parray[index];}else if ( parray[index] >= secMax ){secMax = parray[index];}}}return secMax;}

3 如何使用

int parray[] = { 1, 2, 5, 11, 99, 34, 343, 87, 234 };int secMax = find_sec_max( parray, sizeof( parray) / sizeof( int ) );

 

/*
 * Blog Addr:
http://blog.csdn.net/vsscusw
 *
 * Desc : Xiao Ma's Blog
 *
 * Author : XiaoMa
 *
 */

 

原创粉丝点击