一直感觉CSDN的通知和私信总是看起来怪怪的,主页提示有私信,打开却看不到,有时候向后翻几页又能看到。
今天又遇到这种情况了,于是研究了一下,刚开始还是没找到规律,直到看到“3天前”的消息排在最后一个“3年前”的消息之后,突然就明白了,于是翻到最开始,发现“11个月前”排在第一个,紧跟着是“1年前”的,然后是“2年前”的,再然后是“3年前”,再然后是“3天前”,再然后是“4天前”,直到“26天前”,紧跟之后的是“3个月前”,再之后是“4个月前”。
我是奔放的第一张图片
我是理性的第二张图片
对算法很敏感的我很想了解一下这是怎样的一种排序算法?难不成是按照时间字符串排序的?于是对“11个月前”,“2年前”,“3年前”,“3个月前”,“3天前”和“4天前”几个字符串按照字符串升序排了一下序:
void print(const std::string& e)
{
std::cout << e << std::endl;
}
int main(int argc, char* argv[])
{
char *ssts[] = { "11个月前", "3年前", "2年前", "3个月前", "3天前", "4天前" };
std::vector<std::string> cpths(ssts, ssts + 6);
std::sort(cpths.begin(), cpths.end(), std::less<std::string>());
std::for_each(cpths.begin(), cpths.end(), print);
return 0;
}
我是性感的源代码
排序后的结果是:
“11个月前”
“2年前”
“3个月前”
“3年前”
“3天前”
“4天前”
居然对上了,你怎么看?
原文地址:http://blog.csdn.net/orbit/article/details/45830835