👨💻个人主页:@元宇宙-秩沅
hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 秩沅 原创
收录于专栏 C语言专栏
生活如茶需慢品,岁月如歌需静听!
目录
1.各种图的说明
2.二叉树专题
3.查找和排序算法专题
4.位运算
5,算法的特征:
6.标识符总结
7,栈和队列
8.c语言实质
9.指针(数组,二维数组,文件 ,函数 等类型的指针)
10.算法的特征:
11.标识符总结
1.各种图的说明
软件开发阶段
1.规划阶段: UC图
2.可行性分析阶段 : 系统流程图
3.需求分析阶段 : DFD IPO STD
4.概要设计:层次图,HIPO
5.详细设计:程序流程图 ,PAD, N-S图
数据库的图
1.E-R图
1.矩形:实体
2.椭圆:属性
3.菱形:关系
2.二叉树专题
二叉树中度为0 的节点和度为2 的节点的关系
3.查找和排序算法专题
一,查找(最坏的比较次数)
1顺序查找:n
2二分查找:log 2 n;
二,排序
1,常见的排序算法
稳定的:直接插入排序 ,冒泡排序,归并排序
一,插入排序
(1)直接插入排序:打牌,遍历每一张牌,找到合适的位置插入进去(合适的位置:比左大,比右小)
(2)希尔排序:插入排序的升级版,特点是,把牌分成几份然后进行插入
二,选择排序
(1)简单选择排序:每一轮选择出最大的和最小的,分别排在上一轮选出的大小王后面
(2)堆排序:类似于二叉树,每一轮输出最大的或者最小的,输出完之之就出局
三,交换排序
(1)冒泡排序:每个数不停的轮完一次和右边的数的交换
(2)快速排序:选择基准数(通常用最右边的),两边来回比较,直到分组只剩下一个数时
四,归并排序
(1)不停的二路拆开,到单独个体之后排序,然后合并
易混淆的排序:(平均复杂度最小的的:“快堆并”,最坏情况下最小的:“堆并")
4.位运算
&:按位与
同一为1
|:按位或
同0为0
^:按位异或:
不同为1,相同为0
~:按位取反:
1变0,0变1
5,算法的特征:
1.有穷性
2.可行性
3.健壮性
4,输入:可以有0个或者多个输入
5,输出:不可能没有输出
6.标识符总结
1.由下划线,数字,和字母组成,但是不能以数字开头
2.八进制的开头为0,十六进制开头为0X ,可以在小数点后面开头,如:12.0X23123
3.科学技术法表示: E/e 后面一定要是整数 , .123E3 也可 或者 。123E+3
4,数字中不能有逗号
5,八进制数字中不能有8和8以上
6.关键字不能作为标识符
7.标识符并不能认为大写和小写的标识符是一样的
7,栈和队列
1.栈:
--b = ;
2.队列:
rear = bear = 1 ; 两种情况,1是为空,2是栈满
rear = bear ; 栈满
8.c语言实质
0.归类:结构化语言
1.顶向下
2.逐步求精
3.模块化
4.限制使用goto语句
目的:让语言更具有易读性,利于维护
函数构成结构化语言!
1.基本结构:
1.线性结构(一对一)
数组 , 队列 ,栈 ,串
2.非线性结构(一对多或者多对一)
二维数组,多维数组,广义表,二叉树
2.语言编译流程
代码编译 -------> .obj指令文件 -----------> .exe执行文件
9.指针(数组,二维数组,文件 ,函数 等类型的指针)
1.数组
char s[10]="asda" ; 正确
char s[10]; s="asda";错误
char *s ;s= ”asda“ ;正确
char *s ;s={"asda"}; 错误
int n = 3 ,*p =&n ; 正确 ; 此时是边声明变初始化
int n =3 ; p = &n;错误 ; 此时p是值,&n是地址,二者不相同
int a[3],p =a ; a[2] 等同 (a+2) ;正确
int a[3],p =a ; a[2] 等同 a+2 ;错误 表示 a[0]的值+2
2,指针指向二维数组的调用
1,void A( (a)[n] , b ) {}
void main ()
{ int x[N][N] ,y[N] ;
A(x , y); //调用函数
}
2,int m[2][3] ,(*q)[3];
q = m ;
(1) ((q+1)+2);正确
(2)*(q[1]+2);正确和上面相同
3,指针指向文件的调用
void a( char *fildmdle )
{
File *fp ;
Fopen=( fp = ( fildmdle ,"+r" ); ); //此时不带*号,是因为 传递的是引用参数,去除信号就代表地址,数组 //首地址名可以表示整个数组
}
void main ()
{
a( "student , date " );
}
4.指针指向方法的调用
void f1 ( int x ) { xxxx ; }
void (*f)( ) ;
f = f1 ;
f(a);
5.数组指针的地址作为参数去传递,是否会改变实参的值
不会,如若将指向数组的指针*p,将其地址作为参数传递,那么若要改变其原本实参的值,一定要是指针的指针作为引用参数的传递
6.指针变量的赋值
*p ,给地址p赋值的时候不能是数,一定要是地址或者 NULL
10.算法的特征:
1.有穷性
2.可行性
3.健壮性
4,输入:可以有0个或者多个输入
5,输出:不可能没有输出
11.标识符总结
1.由下划线,数字,和字母组成,但是不能以数字开头
2.八进制的开头为0,十六进制开头为0X ,可以在小数点后面开头,如:12.0X23123
3.科学技术法表示: E/e 后面一定要是整数 , .123E3 也可 或者 。123E+3
4,数字中不能有逗号
5,八进制数字中不能有8和8以上
6.关键字不能作为标识符
7.标识符并不能认为大写和小写的标识符是一样的
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
栓Q