待写...
数据库:
MySQL语句:
查看table中所有元素
table中共有多少元素
查看key为某个值的元素
并查看共有多少个
(上面的顺利答出命令于是记住了。。后面还问了一些什么查看key1的前30个Key2的前35个元素怎么查。。我就不知道了。。还有一些其他命令我也不记得了。。
C++知识:
C++ new带括号和不带括号的区别: 转自这里
对于自定义类类型:
如果该类没有定义构造函数(由编译器合成默认构造函数)也没有虚函数,那么class c = new class;将不调用合成的默认构造函数,而class c = new class();则会调用默认构造函数。
如果该类没有定义构造函数(由编译器合成默认构造函数)但有虚函数,那么class c = new class;和class c = new class();一样,都会调用默认构造函数。
如果该类定义了默认构造函数,那么class c = new class;和class c = new class();一样,都会调用默认构造函数。
对于内置类型:
int *a = new int;不会将申请到的int空间初始化,而int *a = new int();则会将申请到的int空间初始化为0。
以下两个语句的区别是:第一个动态申请的空间里面的值是随机值,第二个进行了初始化,里面的值为0:
int*p1 =newint[10];
int*p2 =newint[10]();
结论:别使用不带括号的new。
2. 对qq号进行排序,哪种排序方法最快?
其中快速排序,堆排序,归并排序的时间复杂度都是nlogn,其中堆排序和归并排序的最坏时间也是nlogn,而快速排序最坏则为n2(n平方),只有归并排序是稳定的。
3. 排序算法的稳定性:
排序的稳定性并不是算法性能是否稳定。算法性能的稳定性,一般是说是否会退化。
需要分析算法本身的策略,是否能够具有稳定性。也就是保证键值相同的元素排序前后相对次序不变。
具体问题具体分析。例如,插入排序,前面的元素先插入已排序的序列,后插入的元素依次前移,直到不比前面的位置的大。相同的元素是不会越过的。
严格证明可以使用数学归纳法,对长度归纳。例如归并排序,长度为1时显然是稳定的,如果你小于n都稳定,很容易推出n+1也稳定。
不稳定性就找反例了。
选择排序用最小值和未排序元素做交换,可能会破坏相同键值元素的次序。
而快速排序,枢纽元如果是重复的值,选择不同位置的相同元素,就可能破坏次序。
注意: 大小比较和交换必须写正确,常见的错误就是序关系定义成了小于等于。虽然有时不影响正确性,但会影响稳定性。
参考 Gigi9 的简书
http://www.jianshu.com/p/5ecee333814f