暂时未有相关云产品技术能力~
1.算法分析概述 算法分析就是分析算法占用计算机资源的多少。计算机资源主要是cpu时间和内存空间,分析算法占用cpu时间的多少称为时间性能分析,分析算法占用内存空间的多少称为空间性能分析。 算法分析的目的是分析算法的时间空间性能以便改进算法2.计算算法时间复杂度的基本方法 1.找出基本频度最大的那条语句作为基本语句 2.计算基本语句的频度得到问题规模n的某个函数f(n) 3.取其数量级用符号"O"表示例如:(这里代码并不是完整的代码,只是为了说明求解的方法,写出来重要的几步)for(i=0;i<=n;i++) for(j=1;j<=i;j+++) for(k=1;k<=j;k++) x=x+1;语句平度==n(n+1)(n+2)/6n的最高次幂为n的三次方 所以: T(n)=O(n^{3})例如: i=1; //(1) while(i<n) i=i*2 //(2) (1)若循环执行次数为1次:i=1*2=2 若循环执行次数为2次:i=2*2=2^2 若循环执行次数为3次:i=2^3 若循环执行次数为n次:i=2^x设语句(2)执行次数为x次i<=n;所以2^x=n 即x<=取最大值f(n)=log时间复杂度T(n)=O(log) ==>o(lgn)3.特殊算法的时间复杂度 有的情况下,算法基本操作重复执行的次数还随问题的输入数据集不同而不同例如:顺序查找,在数组a[i]中查找值等于e的元素,返回其所在位置。for(i=0;i<n;i++) if(a[i]==e) return i+1; return 0;最好情况:1次最坏情况:2次平均时间复杂度为:O(n)所以分析时间复杂度为多少一般考虑(1)和(2)(1)最坏时间复杂度: 指在最坏情况下,算法的时间复杂度。(2)平均时间复杂度: 指在所以可能输入实列在等概率出现的情况下,算法的期望运行的时间(3)最好时间复杂度 指在最好情况下,算法的时间复杂度一般总是考虑在最坏情况下的时间复杂度,以保证算法的运行时间不会更长。4.难以求出的时间算复杂度 有的算法比较复杂,O(n)很难表示对于复杂的算法,可以将他分成几个容易估计的部分,然后利用O加法法则和乘法法则,计算算法的时间复杂度:a)加法法则T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n))b)乘法法则T(n)=T1(n)×T2(n)=O(f(n))×O(g(n))=O((f(n)×g(n))算法时间效率比较: 当n取得很大时,指数时间算法和多项式时间算法在所需时间非常悬殊算法时间复杂的由低到高在设计程序时候应该考虑算法时间复杂度较低的程序5.渐进空间复杂度空间复杂度: 算法所需存储空间的度量 记作:s(n)=O(f(n))其中n为问题的规模(或大小)算法占据的空间-->算法本身要占据空间,输入/输出,指令,常数,变量等。-->算法要使用的辅助空间eg:将一堆数组a中的几个数逆序存放到原数组中:算法1:for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; }算法2:for(i=o;i<n;i++) { b[i]=a[n-i-1]; } for(i=0;i<n;i++) { a[i]=b[i]; }算法1的时间复杂度S(n)=O(1) 常数阶算法2的时间复杂度S(n)=O(n) 一次阶所以算法1比算法2更好
一.shell脚本条件判断 shell脚本之处条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了,shell脚本提供了if then 的条件判断语句,写法。1. if then 语句写法 if [条件判断] ;then //条件判断成立要做的事情 fi (结束) 编写:执行: 2. if then else 语句写法 if 【条件判断】; then //条件判断成立要做的事情 else 【条件】 //条件判断不成立要做的事情 fi //结束 编写: 执行:3. if elif else 语句写发if【条件判断】;then//条件判断成立要做的事情elif 【条件判断】;then//条件判断成立要做的事情else//条件判断不成立要做的事情ficase 语句写法case $变量 in "第一个变量内容") 程序段 ;; //表示该程序块结束 "第二个变量内容") 程序段 ;; "第n个变量内容") 程序段 ;;esac编写:执行: 二.shell 脚本函数1. 函数的简单使用例如:function fname (参数){ //函数代码段 }#!/bin/bash function help(){ echo "this is help cmd!" } function close(){ echo "this is close cmd!" } case s1 in "-h") help ;; "-c") close ;; esae 2.函数的传参:#!/bin/bash print(){ echo "param 1:$1" echo "param 2:$2" } print a b三.shell 循环1.while do done 循环 while [括号] //括号内的状态是判断式 do //循环开始 //循环代码 done#!/bin/bash while [ "$value" != "close" ] do read -p "please input str:" value done echo "stop while!!"执行: 直到输入 close 循环结束2. until do done 循环until[条件] //不成立开始循环do//循环代码段done 3.for循环for var in con1 con2 con3 ......do//循环体done 编写:#!/bin/bash for name in bit1 bit2 bit3 bit4 do echo "your name: $name" done 4.for 循环数值处理写法for((初始值;限制值;执行步长))do//循环代码段done编写: #!bin/bash read -p"please input count:" count total=0 for((i=0;i<=count;i=i+1)) do total=$(($total+$i)) done echo "1+2+···+$count=$total" 执行:
一.Ubuntu 磁盘文件/dev/sd* 文件,此类文件是磁盘设备文件,并不直接访问磁盘,必须要将磁盘挂载到某一个目录下才可以访问。/dev/sdb和/sdb1 /dev/sdb 表示U盘/dev/sdb1 表示U盘的第一个分区二.磁盘和目录的容量查询命令df:列出文件系统的整体磁盘使用量,主要查看文件系统使用量。du:评估文件系统的问价使用量,主要看单个文件的大小。列如:显示上一层 du -h --max -depth=1。三.磁盘的挂载和卸载1.磁盘挂载和卸载mount 和 unmount(挂载和取消挂载)2.磁盘分区fdisk命令3.磁盘格式化 磁盘分区创建好以后 就可以格式化磁盘使用命令 mkfs例如:sudo mkfs -t vfat /dev/sdb1四.Linux 下常用的压缩格式 Linux 下常用的压缩扩展名有 .tar .tar.bz2 .tar.gz。五. gzip 压缩工具(但是不能生成压缩包) gzip 工具负责压缩和解压缩 .gz格式的压缩包 gzip 文件 //压缩 gzip -d xxx.gz //解压缩 gzip 对文件夹进行压缩 gzip -r xxx //对文件夹进行压缩 gzip -rd xxx.gz //对文件夹中的所有文件进行单独的压缩六.bzip2压缩工具 bzip2和gzip 类似,只是bzip2 工具负责压缩和解压缩 bzip2格式的压缩包 bzip2 -z xxx //压缩 bzip2 -d xxx //解压七.tar 打包工具tar 工具提供打包服务,就是将多个文件打包,比如: tar -vcf test.tar.test //将test 打包成 test.tartar -vxf test.tar //解压缩工具参数-f 使用归档文件 -v 打印处命令执行过程 -c 创建(归档) -x 从归档中解除文件(解压缩) -j 使用bzip2 压缩格式 -z 使用gzip 压缩格式 对 .tar.gz 进行压缩和解压缩tar -vxzf xxx.tar.gz //解压缩tar -vczf xxx.tar.gz xxx //压缩八.其他格式的压缩和解压缩1.rar格式需要先安装 rar sudo apt-get install rarrar x xxx.rar 解压缩rar a xxx.rar xxx 压缩2.zip 格式 zip 格式压缩使用 zip 命令 例如 zip -rv xxx.zip xxx zip 格式解压缩使用 unzip 命令 例如 unzip -v xxx.zip
2022年10月