メディアンフィルタを綺麗に実装できないか

PSD素子を常に電源ONで使っていた時に、
PSD素子が電流をインパルス状に消費して、
それが周辺回路へのノイズとなっていた
ノイズは操舵角検出用のポテンショメータ出力に影響を及ぼすことがあり
それ以降は操舵角検出にはローパスフィルタを入れている
インパルスノイズなので、移動平均ではイマイチで
n=3の中央値フィルタを組んでいた。
いまになって見返してみると、条件式が多くてコードが汚い。
ので、条件式を減らして綺麗になるように考えてみた。

char median_filter(char x,char y,char z)
{
 if ( (x-y) * (y-z) >=0 ){return y;}
 if ( (y-z) * (z-x) >=0 ){return z;}
 return x ;
}

条件式は減ったけど、掛け算が増えてるし。没