- 博客(6)
- 收藏
- 关注
原创 消失的数字(涉及时间复杂度的编写代码题)
思路一:先将数组nums排序,从0开始,由小到大,然后用后面一个数减去前面一个数,如果差值为2(正常差值为1) 那么就找到这缺失的数字。思路二:可求0~n的累加和,然后减去数组所有元素的和,得到的值就为缺失的数字。异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a.思路四:首先定义一个变量x,然后赋值0,先让x跟0~n所有的数异或。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。x再跟数组中的每个数异或,最后得到的x值就是缺失的数字。0异或任何数,其结果=任何数。
2022-09-28 16:47:34 176
原创 斐波那契数列(递归)
/斐波那契数列指的是这样一个数列:1,1,2,3,5,8, 13, 21, 34, 55, 89, 144, ...从时间复杂度可以看出斐波那契数列的递归算法在实际中是没啥用的,因为实在太慢了。printf("请输入你要打印的斐波那契数列项数:\n");(对于递归算法的时间复杂度计算=递归次数*每次递归调用的次数)设第n项,则该项的值为n-1项的值加上n-2项的值。其中x为右边缺的次数(右边的递归分支会提前结束)斐波那契数列(递归)的时间复杂度:O(2^n)而n-1项的值为n-2和n-3两项值的和。
2022-09-24 17:10:13 1782 1
原创 二分查找(有序)
/数组在传参的过程中仅仅传过去数组第一个元素的地址所以不能在函数内部求数组元素的个数。int binary_search(int x[], int k, int b)//本质上这里的x是一个指针(接受了地址),而不是一个数组。printf("找到了,下标是%d\n", num);对于一个数组规模为n的数组,二分查找每进行一次,就会砍一半数组个数。//所以需在此函数外求得数组元素的个数。则1*2*2*2*2*.......=n)
2022-09-24 15:53:36 109
转载 冒泡排序(c语言)
/以从大到小排序为例,第一轮比较后,所有数中最大的那个数就会浮到最左边;//a数组的大小除以a数组中第一个元素的大小得到a数组元素的个数。//比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。//从左到右,相邻元素进行比较。j++)//每轮比较n-1-i次。i < n - 1;i++)//比较n-1轮。//交换数据时用于存放中间数据。//存放数组a中元素的个数。
2022-09-24 15:41:33 38
原创 在Linux系统中输入“ls /“,查看系统根目录结构:
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。存放的是Linux的外部设备,在Linux中将设备视为一个文件。
2022-09-24 15:20:23 1367
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人