求解

这里记录一下暑假两个月自学的笔记

汇编语言-给电脑看的语言 虽然也是要被转化为0与1的 但层次更为粗糙 可读性更低
vscode的debugger
make clang debug50等用法

声明数组

int 数组名[数组大小]
数组名[从零开始的数组序号] = 变量名

例
int scores[3];
scores[0] = 72;
scores[1] = 77;
scores[2] = 98;

可以通过get_int函数达到获取int数值的作用

const是常量 定义之后无法再更改

const int n =3

数据在处理的时候会占用内存
而每段数据为了表明字符串已结束会多加一个字节
例: 3个字符 将占用3+1个字节

string 字符串 由char(字符) 组成image

大写和小写字母在acsii码中正好差32
小写转大写减去32即可
12

比较string用的是strcmp(string1,string2)
22
linear search 线性
binary search 二分
还有排序相关的
选择排序算法
一次一次选最小的元素 放到最左边

冒泡排序算法
抓出来一个和别的依次比较
假如大就往右移(互换位置)
然后依次解决

选择排序的次数是n(n-1)/2 (已编辑)
数量大概是n的平方

冒泡排序的次数为(n-1)(n-1)
这俩的上限其实都差不多
这俩的上界都是n方
下界是
冒泡排序在数据已经接近或已经有序的情况下
更有优势吧
感觉这俩更像是两个顺序不同的排序
选择排序主要是从左到右筛选
冒泡排序主要是从右到左

然后是在函数里套函数的情况
void draw(int n)
{}
31
归并排序
把数据拆成两半
并分别排好顺序

0136 2457
然后先看两边的第一个
0
排前面
现在揭露0右边的1
再把1和2比较
以此类推
归并会将这些数据先拆成两个两个
二个排序→四个排序→八个排序
以此类推
有更好的效率

%p 输出地址
变量名前面要加上&
上面这个是在printf中的用法
定义时使用*p 表明p是一个指针

静态数组:静态定义的数组在程序加载的时候就已经分配了内存空间,直到函数结束或者程序结束后才会被释放;%20动态数组:由malloc()或new()等函数定义的数组,在程序运行时才申请内存空间,使用完后可以借助free()或delete()手动释放。

以scanf来获取数据