num

Go语言入门(二)-流程控制

妖精的绣舞 提交于 2020-03-14 11:19:05
go流程控制 字符串详解 字符串原理 字符串底层就是一个byte数组,所以可以和[]byte类型互相转换 字符串中的字符是不能修改的 字符串是有byte字节组成,所以字符串的长度是byte字节的长度 rune类型(int32占四个字节)用来表示utf8字符,一个rune由一个或者多个byte组成 func stringByte() { var str string str = "abc你好" var b []byte = []byte(str) var c[]rune = []rune(str) fmt.Printf("%c\n",97) fmt.Printf("b=%v,\tlen(str)=%d\n",b,len(str)) fmt.Printf("%d\n",len(c)) } 练习 写一个程序,对英文字符串进行逆序 func reverseStr(s string) string { bytes := []byte(s) for i:=0;i<len(s)/2;i++{ //fmt.Printf("%c",i) 输出字符串 var tmp = bytes[i] bytes[i] = bytes[len(s)-i-1] bytes[len(s)-i-1] = tmp } s = string(bytes) return s } func main() { /

二分查找

我的梦境 提交于 2020-03-14 01:52:32
二分查找 二分查找的前提 目标函数单调性(单调递增或者递减) 存在上下界(bounded) 能够通过索引访问(index accessible) 代码模块 left, right = 0, len(array) - 1 while left <= right: mid = (left + right) / 2 if array[mid] == target: # find the target!! break or return result elif array[mid] < target: left = mid + 1 else: right = mid - 1 在递增数组里 [10,14,19,26,27,31,33,35,42,44] 查找:31 10,14,19,26,27,31,33,35,42,44 0 1 2 3 4 5 6 7 8 9 取中间4 往后5~9取7 5~7取6 5~6取5得出最终结果 x的平方根 //二分法 class Solution { public: int mySqrt(int x) { long long i=0; long long j=x/2+1; while(i<=j) { long long mid=(i+j)/2; long long res=mid*mid; if(res==x) return mid; else if(res<x

shell创建testXX.sh练习

你离开我真会死。 提交于 2020-03-13 23:47:33
#!/bin/bash #查找文件夹下最大的testXX.sh,并将XX加1后创建文件,并赋予可执行权限 IFS=$'\n' varList=$( ls -a test[0-9]* ) maxnum=0 #循环找出最大值 for item in $varList do num=${item#*test} num=${num%.*} if [ $maxnum -lt $num ] then maxnum=$num fi done #echo $maxnum # #最大文件数加1 maxnum=$[ $maxnum+1 ] filename=test$maxnum.sh #echo $filenam #e #创建文件 echo "#!/bin/bash" > $filename # #赋予可执行权限 chmod u+x ./$filename # #输出创建的文件名 echo $filename 来源: 51CTO 作者: CharlesChchch 链接: https://blog.51cto.com/12694001/2478094

python NumPy库学习笔记一

*爱你&永不变心* 提交于 2020-03-13 21:33:37
目录 python NumPy库学习笔记一 引言 NumPy Ndarray 对象 NumPy 数据类型 NumPy 数组属性 NumPy 创建数组 numpy.empty numpy.zeros numpy.ones NumPy 从已有的数组创建数组 numpy.asarray numpy.frombuffer numpy.fromiter NumPy 从数值范围创建数组 numpy.arange numpy.linspace numpy.logspace python NumPy库学习笔记一 引言 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 为开放源代码并且由许多协作者共同维护开发。 NumPy ,SciPy, Matplotlib 是python中用于替代matlab 的三剑客。 NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。 SciPy 是一个开源的 Python 算法库和数学工具包。 SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换

八种排序算法效率比较

流过昼夜 提交于 2020-03-12 22:27:08
从刚上大一那会儿学的 C 语言开始,就已经接触到了不少排序 算法 ,但当时都只是为了完成简单的排序任务而已,而且所给的数据也不够多,所以看不出各个排序 算法 间的执行效率的优劣。最近有个数据结构课程设计的实验,是有关于排序 算法 之间的效率比较,我就顺便把它放上来了,并对各个算法执行的效率时间做了柱形统计图表。此次实验主要测试了8种排序算法:插入排序、快速排序、冒泡排序、希尔排序、简单选择排序、堆排序、归并排序、折半插入排序。 总共建立了三种情况,分别是平均排序、最好情况排序、最坏情况排序。第一种情况就是使用了VC6.0下的随机数生成函数输出100000个随机数进行排序;第二种情况是100000个数本身已经按从小到大的顺序排列了;第三种情况就是100000个数全部是按逆序排列。代码如下: #include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> #define MAX 100000 void InsSort(int r[],int length) { int i,j; for (i=2;i<=length;i++) { r[0]=r[i]; j=i-1; while(r[0]<r[j]) { r[j+1]=r[j]; j=j-1; } r[j+1]=r[0]; } } //插入排序 void

【Python系列】Python自动发邮件脚本-html邮件内容

大城市里の小女人 提交于 2020-03-12 19:39:27
缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧。 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想。可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4 CentOS7.0下面默认的是Python2.7.5,我们先来将Python的版本提升上去 #wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz 下载Python3.4版本 #tar -xf Python-3.4.3.tgz #cd Python-3.4.3/ #./configure 这边configure的时候可能会遇到你的环境没有安装gcc编译环境,执行下面的语句再configure即可 #yum -y install gcc #yum -y install gdb #yum -y install gcc-c++ 编译安装 #make #make install

Python零碎笔记

你。 提交于 2020-03-12 19:04:51
python中%d %2d %02d %-2d% %.2d的区别 %d就是普通的输出了整形数 %2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。 %02d,和%2d差不多,只不过左边补0 %-2d将数字按宽度为2,采用左对齐方式输出,若数据位数不到2位,则右边补空格 %.2d 输出整形时最少输出2位,如不够前面以0占位。如输出2时变成02,200时只输出200;输出浮点型时(%.2f)小数点后强制2位输出 num = 1 print("%d" % (num))结果为: (1) print("%2d" % (num))结果为: ( 1) print("%02d" % (num))结果为: (01) print("%-2d" % (num))结果为: (1 ) print("%.2d" % (num))结果为: (01) print("%.2d" % (200))结果为: (200) 来源: oschina 链接: https://my.oschina.net/chinahufei/blog/3192698

返回一个整数数组中最大子数组的和。

。_饼干妹妹 提交于 2020-03-12 17:12:21
要求:   输入一个整形数组,数组里有正数也有负数。   数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。   求所有子数组的和的最大值。要求时间复杂度为O(n)   发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选)、源代码、结果截图、总结。 一开始的代码只实现了功能,并没有达到要求的时间复杂度为O(n),设计思想为:先定义sum赋值数组中的最大值,然后开始遍历,先从第一个数开始加比如:1,2,3,4,5,6,7,8,9,10 先从1开始加,1+2然后赋值给sum1,再给sum比较,把较大者赋值给sum,然后1+2+3重复以上步骤,等到1加完后,再从2开始重复以上步骤直到结束。 代码为: import java.util.Scanner; public class Shuzu{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); System.out.println("输入10个数"); int num[]=new int[10]; int sum=0; int sum1=0; for(int i=0;i<10;i++) { num[i]=sc.nextInt(); if(num[i]>sum) { sum=num[i]; } } for(int i=0

Go语言之如何给*int32类型赋值

China☆狼群 提交于 2020-03-12 16:32:34
直接上代码: package main import "fmt" func main() { var num *int32 var i int32 = 5 // 针对*int32的,先创建一个i类型,然后取i的地址,赋值给*int32 num = &i fmt.Println("=====>:\t", num) fmt.Println("=====>:\t", *num) } 运行结果: =====>: 0xc042064080 =====>: 5 Process finished with exit code 0 下面的形式是不可以的: package main import "fmt" func main() { var num *int32 *num = 5 fmt.Println("=====>:\t", num) fmt.Println("=====>:\t", *num) } 运行结果: panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x1 addr=0x0 pc=0x48b4ea] goroutine 1 [running]: main.main() E:/Program/go2/goPath/src/xingej-go