c++ - Comparing 3 number properties of an object -


i wanted know fastest , efficient way of comparing 3 numerical properties of number , determining lowest value , highest value. have object following prop

obj.a = 5; obj.b = 13; obj.c = 2; 

now need calculate lowest value(2) , highest value(13);

one option have using conditional statement having 3 conditions checking greatest element , 3 lowest element.resulting in 6 conditional statements.my other option pushing these values in vector , retrieving extreme values sorted vector. there alternative approach ? suggestions ?

create min() function 2 variables as:

int min(int x, int y) {     return y ^ ((x ^ y) & -(x < y)); } 

similarly max 2 variables as:

int max(int x, int y) {     return x ^ ((x ^ y) & -(x < y)); } 

and call function 3 variables as:

int max = max(a,max(b,c)); int min = min(a,min(b,c)); 

these methods quite efficient , may used number of variable comparison.

it uses concept

  1. the xor of number 0

  2. xor of number 0 number itself.

again can used nested calls n number of number comparisons.

note: may replace x<y x-y>>31 (considering x 32 bit signed integer).

i sure cannot more efficient 3 numbers


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -