美文网首页
计算机相关知识点小汇总

计算机相关知识点小汇总

作者: 小头xt | 来源:发表于2017-10-09 17:52 被阅读0次

待写...

数据库:

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

相关文章

网友评论

      本文标题:计算机相关知识点小汇总

      本文链接:https://www.haomeiwen.com/subject/xnmpyxtx.html