c# – 排序3个数字而不分支
发布时间:2020-12-15 20:03:07 所属栏目:百科 来源:网络整理
导读:在C#或C中,我如何实现三个(整数)数字的无分支排序? 这可能吗? 解决方法 没有条件.只有一个铸造到uint.完美解决方案 int abs (int a) { int b = a; b = (b (sizeof(int)*CHAR_BIT-1) 1); return 2 * b * (a) + a; }int max (int a,int b) { return (a + b +
在C#或C中,我如何实现三个(整数)数字的无分支排序?
这可能吗? 解决方法
没有条件.只有一个铸造到uint.完美解决方案
int abs (int a) { int b = a; b = (b >> (sizeof(int)*CHAR_BIT-1) & 1); return 2 * b * (a) + a; } int max (int a,int b) { return (a + b + abs(a - b)) / 2; } int min (int a,int b) { return (a + b - abs(a - b)) / 2; } void sort (int & a,int & b,int & c) { int maxnum = max(max(a,b),c); int minnum = min(min(a,c); int middlenum = a + b + c - maxnum - minnum; a = maxnum; b = middlenum; c = minnum; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |