Re: коммивояжёр
- From
- Vladimir Vassilevsky (2:5020/175.2)
- To
- Mike Bolshakoff
- Date
- 2003-01-17T17:20:28Z
- Area
- RU.ALGORITHMS
From: "Vladimir Vassilevsky" <vlv@fullnet.net>
Hi Mike,
>> >> unsigned int Factorial(unsigned int n)
>> >> {
>> >> unsigned int i,f = 1;
>> >>
>> >> for(i = 2; i <= n; i++) f *= i;
>> >>
>> >> return f;
>> >> }
>>
>> VL> Ну кто же так неэффективно факториал считает?!? Позор!
>>
>> И как лучше?
MB> UNIT Factorial(UNIT n)
MB> {
MB> if(n) // или if(n > 1)
MB> {
MB> for(UNIT f = n; --n; f *= n);
MB> return(f);
MB> }
MB> else
MB> return(1);
MB> }
Это к тому, что на большинстве архитектур сравнение с нулем менее
затратно, чем сравнение с константой или сравнение двух переменных.
Зато у тебя на одну итерацию больше, да еще и сравнение вначале :)
VLV
"Хотели как лучше - получилось как всегда. (с) В. С. Черномырдин"
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)