牛客网刷题随记
小菜鸡的蜕变之路
长路漫漫,若能坚持,未来可期,加油~
展开
-
switch语句总结
switch语句执行思想:先计算switch里表达式的值,然后将值与case后的常量或常量表达式值进行比较,找到匹配的,则程序执行匹配case后的语句;break为结束标志;若未遇到,则按顺序往下执行;若未找到与switch相匹配的case,则程序执行default后的语句。注:(笔试题中考的一些小细节)1、case与default先后顺序无所谓,谁先谁后都可以。switch(a...原创 2019-07-07 16:27:33 · 2304 阅读 · 0 评论 -
排序刷题笔记
干货来啦:有向无环图才能进行拓扑排序。 在待排序的元素序列基本有序的前提下,效率最高的排序方法是?(比较最坏情况下的时间复杂度) "list采用链式结构存储,在C++ STL中的list采用双向链表存储,比较适合用快速排序进行排序,这是由快速排序不需要随机访问元素的特点决定的。冒泡排序适合list,但是算法复杂度为O(n^2),没有快速排序快。 二分插入排序算法适合顺序存储情况,不...原创 2019-07-28 20:46:06 · 612 阅读 · 0 评论 -
数据结构之线性表刷题笔记(顺序表,单链表,双链表,循环链表)
线性表知识点及错题笔记:(整理自牛客网)1、在线性表中,顺序存储元素逻辑相邻,物理也相邻;链式存储逻辑相邻,物理不一定相邻;2、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(顺序表)存储方式最节省时间。(若是在中间删、插元素,链表比较省时。)3、栈数据结构具有记忆功能,例如点A网页,A入栈,点B网页,B入栈,在B网页点后退,进入A,也就是B出栈,...原创 2019-07-31 22:46:02 · 1117 阅读 · 0 评论 -
中缀表达式如何转化为后缀表达式?
题目:表达式“X=A+B*(C--D)/E”的后缀表示形式可以为A、XAB+CDE/-*=B、XA+BC-DE/*=C、XABCD-*E/+=D、XABCDE+*/=分析:一个中缀式到其他式子的转换方法~~这里我给出一个中缀表达式~a+b*c-(d+e)第一步:按照运算符的优先级对所有的运算单位加括号~式子变成拉:((a+(b*c))-(d+e...原创 2019-08-02 21:43:10 · 894 阅读 · 0 评论 -
流水线吞吐率计算
流水线吞吐率计算解析:(1)吞吐率有个公式:指令条数除以流水线时间(2)流水线时间计算有个公式:一条指令所需时间+(指令条数-1)*时间最长的指令的一段即:7+(8-1)*3 = 28则吞吐率 = 8/28Δt转自:https://www.cnblogs.com/moonsoft/p/9869747.html...转载 2019-07-18 07:54:19 · 32144 阅读 · 2 评论 -
华为2016应届生笔试题错题集
给出以下定义: char acX[] = “abcdefg”; char acY[] = {‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度...原创 2019-07-19 21:58:29 · 563 阅读 · 0 评论 -
对*p++与*++p;(*p)++ 与 ++(*p)的理解
参考:https://blog.csdn.net/baidu_37973494/article/details/82761455*p++:等同于:*p; p += 1;解析:由于*和++的运算优先级一样,且是右结合。故*p++相当于*(p++),p先与++结合,然后p++整体再与*结合。前面陈述是一种最常见的错误,很多初学者也是这么理解的。但是,因为++后置的时候,本身含...转载 2019-07-16 08:57:13 · 27612 阅读 · 12 评论 -
与数组初始状态无关的内排序算法
转自:https://www.cnblogs.com/Xieyang-blog/p/8340578.html首先,与初始状态无关分为几种情况1、算法复杂度与初始状态无关;2、元素总比较次数与初始状态无关;3、元素总移动次数与初始状态无关。【其实还有一种就是总排序趟数与初始状态无关,由于分析简单,除了快速排序的排序次数(递归深度)与关键字选择(初始状态)有关,还有一个优化后的冒泡...转载 2019-07-18 10:44:46 · 9647 阅读 · 4 评论 -
牛客网刷题笔记之指针题(超详细解答过程)
请写出下列程序的输出结果:#include<stdio.h>char *c[] = { "ENTER", "NEW", "POINT", "FIRST" };char **cp[] = { c+3, c+2, c+1, c };char ***cpp = cp;int main(void){ printf("%s\n", **++cpp);...原创 2019-07-15 17:59:00 · 583 阅读 · 0 评论 -
动态分配和静态分配
所谓动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。例如我们定义一个float型数组:float score[100]; 但是,在使用数组的时候,总有一个问题困扰着我们:数组应该有多大?在很多的情况下,你并不能确定要使用多大的数组...原创 2019-06-28 21:06:11 · 11205 阅读 · 0 评论 -
已知int占4个字节,bool占1个字节,unsigned int value = 1024;bool condition = *((bool *)(&value))求value,condition值
已知int占4个字节,bool占1个字节。unsigned int value = 1024; bool condition = *((bool *)(&value)); if (condition) value += 1; condition = *((bool *)(&value)); if (condition) value += 1; condition = ...原创 2019-06-27 22:18:27 · 2185 阅读 · 0 评论 -
有符号整数与无符号整数相加问题
运行下面代码,输出的结果是:#include<stdio.h>int main(){ unsigned int a = 1; signed int b = -3; int c; (a + b > 0) ? (c=1) : (c=0); printf("%d",c); return 0;}A、 1B、 0C、...原创 2019-07-08 21:50:13 · 5722 阅读 · 3 评论 -
中缀表达式转换为等价后缀表达式
假设栈初始为空,将中缀表达式转换为等价后缀表达式的过程中,当扫描到f时,栈中的元素依次是()A、+(*-B、+(-*C、/+(*-*D、/+-*基本概念:在中缀变后缀时,操作数的顺序不会发生变化,只有运算符的顺序可能发生变化。同时又没有括号。所以在转换的过程中,只要碰到操作数,可以直接输出,而遇到运算符和括号进行相应的处理即可。转换原则如下:...原创 2019-08-06 16:03:25 · 2823 阅读 · 1 评论