4 ms·
You can also do the comparison over larger integers, for example int cmp(int x, int y) { return (int) (((long)x-(long)y)>>32); }
by arielby 12y ago
You can also do the comparison over larger integers, for example
int cmp(int x, int y) {
return (int) (((long)x-(long)y)>>32);
}
- Sharlin 12y agoIn mainstream compilers, even on x64, sizeof(long) == sizeof(int). You need long long instead. Of course, in the general case there's exactly zero guarantee that there even exists an integral type wider than int.
- TwoBit 12y agoThe C99 language standard requires support for long long.
- dezgeg 12y agoBut an implementation where sizeof(int) == sizeof(long) == sizeof(long long) is allowed by the specification.
- marvy 12y agoOn a (slightly) more practical level: there exists some largest integer type. You may someday need to sort it. If you want your sort to always work, you can't afford to overflow.