找两个最小的数
这个是大二写的代码,感觉还是比较好,晕啊,现在怎么想都想不到啊。
人老了,脑子不中用了。
void Select(HuffmanTree HT,int n,int &s1,int &s2)
{
unsigned int Min_1,Min_2;
int x1,x2;
x1=x2=0;
Min_1=Min_2=0x7FFF;//这个小值能取多大取多大。哈哈哈~
for(int i=0;i<=n;i++)
{
if(HT[i].weight<Min_1&&0==HT[i].flag)
{
Min_2=Min_1;
x2=x1;
Min_1=HT[i].weight;
x1=i;
}
else
{
if(HT[i].weight<Min_2&&0==HT[i].flag)
{
Min_2=HT[i].weight;
x2=i;
}
}//这个if与else语句作用是:Min_1<Min_2<x;
//同理:如果要是3个数:Min_1<Min_2<Min_3<x,多一个条件判断语句而已。
}
s1=x1;//x1为最小者
s2=x2;//x2为次小者
return;
}
评论
发表评论