摘要:
const其他用法已经比较清楚了,但const函数的概念之前还有点模糊,先记录一下。const int* fun();用于修饰函数返回值,一般用于修饰函数返回指针,防止返回的指针内容被修改。class B{public: int a; void fun() const;};表示fun()是一个const成员函数,它不能修改任何数据成员,也不能调用任何非const成员函数。当在fun内尝试修改a时编译会报错。于是当出现const返回值加const成员函数的时候,要搞清楚了const int* fun() const ;表示它是一个const成员函数,并且返回一个const指针。 阅读全文
摘要:
看了一道笔试题,说有100W个数据,范围在0~65535之间,要求用最少的空间和最快的速度进行排序。刚开始的思路是,65535就是2^16,那首先要把数据类型定义为short。其次,要用最少的空间,那最好还是不用递归,那不用快排。不递归,速度又快,那肯定是堆排序了。O(n)的空间+O(nlogn)的时间。后来看了网上的人对于这题的评点,原来统计排序才是这一条件下的最优解。统计排序,又叫桶排序。它的原理非常简单。在知道数据大小范围的条件下,定义一个等于数据大小范围的数组。数组初始化为0,然后直接用数据作为数组下标统计数据个数,最后把统计数据从头到尾输出(升序),或者从尾到头输出(降序)即可。时间 阅读全文