/*
* 写一个函数找出一个整数数组中,第二大的数(microsoft)
* 要求效率尽可能高
*/
#include<stdio.h>
#include<stdlib.h>
int find(int *a,int n)
{
int i=1;
int second=*(a+i);
while(i<n)
{
if(*(a+i)>second)second=*(a+i);
i++;
}
return second;
}
int findsecondmaxvalue(int *a,int n)
{
int i=0;
int first=*(a+i);
int second=*(a+i);
while(i<n)
{
if(*(a+i)>first)
{
second=first;
first=*(a+i);
}
else if(*(a+i)==first)
{
//do nothing
}
else if(*(a+i)<first&&*(a+i)>second)
{
second=*(a+i);
}
else
{
//do nothing
}
i++;
}
//最大值和次大值相等(只可能出现在数组的第一个元素)
if(first==second)
{
second=find(a,n);
}
return second;
}
int main()
{
int a[]={9,5,1,7,4,6,2,3,8};
int n=sizeof(a)/sizeof(a[0]);
int second=findsecondmaxvalue(a,n);
printf("次大值=%d\n",second);
}
分享到:
相关推荐
本篇文章是对如何寻找数组中的第二大数进行了详细的分析介绍,需要的朋友参考下
1.顺序比较算法的核心思想是遍历两次数组A,第一次找到最大值及其位置,第二次找到第二大值及其位置。通过比较当前元素与最大值和第二大值的大小关系,来更新相应的变量。 2.将一次比较视为一场比赛。在一次比较中,...
在数组中寻找第二大的数,是比较次数最少的算法
1.3 寻找两个排序数组的中位数 1.4 最长连续序列 1.5 累加和 1.6 移除数组中指定值 1.7 下一个排列 1.8 第n个全排列 1.9 验证数独的正确性 1.10 容纳雨水的量 1.11 旋转图像 1.12 数字加1 1.13 爬楼梯 1.14 格雷码 ...
2.A+B 3.A+BⅡ 4.AB 5.ACKERMAN 6.Arithmetic Progressions 7.Bee 8.Checksum algorithm 9.Coin Test 10.Dexter need help 11.Double 12.Easy problem 13.Favorite number 14.Graveyard 15.Hailstone 16.Hanoi Ⅱ 17...
获取第二大数 正则表达式匹配 重复字符串(待提交) 袜子一双(待提交) 第一个非连续号码(待提交) 交替案例 信用卡面具 删除元素 按长度对数组进行排序 验证信用卡号 删除重复的单词 计算字符串中的字符数 数组...
leetcode 530 算法和数据结构的基础课程 使用 Kadene 算法的最大子阵列问题 ...在旋转排序数组中查找元素 BST 是否对称(左右半边是镜像) 从 PRE-ORDER 构建 BST 给定数字范围的按位与 两个排序数组的中位数 最大平方
第2章 结构、联合和枚举 21 结构声明 21 2.1 struct x1{ };和typedef struct{ }x2; 有什么不同? 21 2.2 这样的代码为什么不对?struct x{ }; x thestruct; 22 2.3 结构可以包含指向自己的指针吗? 22 ...
第2章 结构、联合和枚举 结构声明 2.1 structx1{ };和typedefstruct{ }x2;有什么不同? 2.2 这样的代码为什么不对?structx{ };xthestruct; 2.3 结构可以包含指向自己的指针吗? 2.4 在C语言中用什么...
5.主席树(静态求区间第k小) (区间中小于k的数量和小于k的总和) (区间中第一个大于或等于k的值) 6.权值线段树 (求逆序对) 7.动态主席树 (主席树+树状数组) (区间第k大带修改) 8.树上启发式合并 (查询子树的优化) 9,...
1.16.8 pku_2600_二分+圆的参数方程 74 1.16.9 pku_1151_矩形相交的面积 76 1.16.10 pku_1118_共线最多的点的个数 78 1.16.11 pku2826_线段围成的区域可储水量 80 1.16.12 Pick公式 84 1.16.13 N点中三个点组成...
修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击第一列右面也会导致第一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB...
二进制到三十六进制.ec 互 联网扩展模块1.1.ec 互联网扩展模块1[1].1.ec 五笔编码查询模块.ec 代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真...
二进制到三十六进制.ec 互 联网扩展模块1.1.ec 互联网扩展模块1[1].1.ec 五笔编码查询模块.ec 代码编辑器部分模块.ec 仿 vista截图.ec 仿WinXP窗口v3.1版.ec 仿XP界面3.0特别版模块 3.0.ec 仿XP窗口2.0.ec 仿 真...