Wil*_*ken 7 c sorting algorithm performance
我在一个大文件(10英寸GB)中排序128位记录.算法工作正常,目前使用uint64_t
其中两个等于一个记录.这是一个现代的64位系统.
为了代码可读性,我想知道创建一个类似的结构是否typedef struct u128t {uint64_t hi, uint64_t} u128t
可以代替两个64位记录.这将使数组索引和赋值更清晰,但我必须实现比较器函数.
这是一个可移植的解决方案,我应该期望它以与原始实现相同的速度运行吗?
进一步阅读:
使用struct很好.
我会做这样的事情:
#if COMPILER_WHICH_SUPPORTS_128_BIT_TYPE
typedef __uint128 u128t;
#define COMPARE(a, b) ((a) == (b))
#else
typedef struct {
uint64_t hi;
uint64_t lo;
} u128t;
#define COMPARE(a, b) MyCompareFunction((a), (b))
#endif
Run Code Online (Sandbox Code Playgroud)