当前位置: 代码迷 >> 其他开发语言 >> 10000个数中求第二大的数,不能用排序法解决方案
  详细解决方案

10000个数中求第二大的数,不能用排序法解决方案

热度:2669   发布时间:2013-02-26 00:00:00.0
10000个数中求第二大的数,不能用排序法
10000个数中求第二大的数,不能用排序法(使用c或者c#)

------解决方案--------------------------------------------------------
遍历可以吧?

伪代码:

long bigest = readnum_from_file(0);
long bigwant = readnum_from_file(1);

依次遍历total_num,readnum_from_file(i)并
和biggest和bigwant比较,按照大小调整b0,b1的值。
------解决方案--------------------------------------------------------
第一步求最大值;
第二步在余下的元素中再取最大值。
第三步完成!
------解决方案--------------------------------------------------------
设第一数是最大值,跟第二个数判断...

然后遍历整个数组...
------解决方案--------------------------------------------------------
for(count = 0;count >= 10000;count++)
if (count == 0)
{
a11 = 数组[count];
}
else if(count == 1)
{
a22 = 数组[count];
if(strncmp(a22,a11,sizeof()-1) > 0 )
{
a33 = a11;
a11 = a22;
a22 = a33;
}
}
else
{
if(strncmp(数组[count],a11,sizeof()-1) > 0 )
{
a22 = a11;
a11 = 数组[count];
}
else
{
if(strncmp(数组[count],a22,sizeof()-1) > 0 )
{
a22 = cur0001;
}
}
}
}
------解决方案--------------------------------------------------------
预置一个两个数的缓冲区(你可以直接用数组,或者两个变量),遍历,只要比这两个数中的任何一个大就替换掉。最后缓冲区里面小的那个就是第二大的,当然遇上相等的你要忽略。
  相关解决方案