arr

对数器

百般思念 提交于 2019-12-04 06:01:40
写完算法需要大量测试,需要生成测试数据和测试自己的算法是否正确,一个对数器至少需要三个功能,1.生成大量测试数据,2.找一个绝对正确的算法,3.测试 代码如下: 1 package com.sort.demo; 2 3 import java.lang.reflect.Array; 4 import java.util.Arrays; 5 import java.util.Random; 6 7 public class Test { 8 9 /** 10 *随机数值发生器 11 * @param size 最大长度 12 * @param value 最大值 13 * @return 14 */ 15 public static int[] generateRandomArray(int size,int value){ 16 int[] arr=new int[(int)((size+1)*Math.random())]; 17 for (int i=0;i<arr.length;i++){ 18 arr[i]=(int)((int)(value+1)*Math.random()-(int)(value+1)*Math.random()); 19 } 20 return arr; 21 } 22 23 /** 24 * 绝对正确的方法 25 * @param arr 26 */

numpy:数组的索引

核能气质少年 提交于 2019-12-04 05:34:29
   先将模块导入文件中 import numpy as np    创建一个数组 arr = np.arange(1, 10) 1、使用单独的下标索引 print("获取元素", arr[2])    使用单独的下标索引将会降低数组的维度 2、使用下标列表索引 print("获取元素", arr[[1, 3, 5, 7]])    使用下标列表索引,不会降低维度 3、使用切片进行索引 print("切片获取元素:", arr[2:3])    使用切片进行索引,不会降低维度 4、二维数组的索引以及混合索引   创建一个二维数组 arr = np.arange(1, 17).reshape((4, 4)) (1)使用下标索引 print("获取到的元素:", arr[0, 1])    arr [行 , 列 ] , 使用一次下标,将会降低一次索引 (2)使用切片索引 print("使用切片获取到的元素:", arr[0:1, 1:2]) (3)使用下标列表索引 print("使用下标列表来获取多个元素:\n", arr[[1, 2], [1, 2]]) print("使用下标列表来获取多个元素:\n", arr[[1, 2, 3], [1, 2]]) # 错误的,前后的下标列表必须一致    使用下标列表对二维数组进行索引,将获取下标列表对角线两端的元素组成的数组

numpy:数组的形状与展开

情到浓时终转凉″ 提交于 2019-12-04 04:55:05
   先将模块导入文件中 import numpy as np 1、使用shape属性修改数组的形状 arr.shape = (4, 4) arr.shape = 4, 4 arr.shape = [4, 4]    使用 shape 属性修改原数组形状的方法有以上三种,只要元素个数相同,可以随意更改数组的形状 2、使用reshape()方法修改数组的形状 arr = arr.reshape((4, 4))    使用 reshape() 方法可以修改数组的属性,在不改变原数组的情况下返回一个新的数组,只要元素个数相同,可以随意更改数组的形状 3、创建数组时设置数组的形状 arr = np.arange(16).reshape((4, 4))    同时使用创建数组的 api 和改变数组形状的方法 4、将高维数组展开 res = arr.flatten(order="C") #按行展开 C风格展开 res = arr.flatten(order="F") # 按列展开, F 风格展开 res = arr.ravel() # 按行展开 C风格展开 res = arr.ravel(order='F') # 按列展开 ,F 风格    可使用 flattrn() 或 ravel() 方法将数组展开,参数 order 设置展开的方式 来源: https://www.cnblogs.com

IIS Reverse Proxy to node.js

情到浓时终转凉″ 提交于 2019-12-04 04:20:21
问题 I am trying to configure a reverse proxy so that HTTP calls made from a website hosted in the IIS to node.js applications work. I'll explain it better: I've hired a VPS. In this VPS i have a IIS website (simple HTMl + Javascript ) and a node.js application running on localhost:3000. In javascript i make HHTP GET calls to the node.js to obtain some data. I need to configure a reverse proxy so that the HTTP calls made to node.mydomain.com for example, are internally redirected to localhost:3000

插值查找

ぃ、小莉子 提交于 2019-12-04 03:44:00
概念介绍   有同学想了解插值查找,今天它来了!想了解插值查找,就得先了解二分查找的原理,对于不知道二分查找的小伙伴,可以去简单学习一下,送上超链接 https://www.cnblogs.com/maguanyue/p/11675567.html 。插值查找和二分查找十分的相似,它们唯一的区别就是:二分查找的每次查找点=(最大值+最小值)/2,是一个固定值。而插值查找的每次查找点的下标=最小值+ (最大值- 最小值) * (目标值- a[最小值下表]) / (a[最大值下表] - a[最小值下表]),这样做的目的是为了使得查找点变为自适应选择,从而提高查找的效率。   我们还是用二分查找中的数组举例子,这次我们的需求是在arr=[1,3,5,7,9,10,13,18],找到1。    二分查找:   在二分查找的算法中记录被调用打印日志,说明二分查找被调用了。   二分查找的过程在这里我们就不进行推导了,直接看二分查找的结果。   对二分查找进行调用。   结果:   说明在arr=[1,3,5,7,9,10,13,18],找到1,二分查找被调用了3次。    插值查找:   先带入公式,获取中值及其下标int mid = start + (end - start) * (findValue - arr[start]) / (arr[end] - arr[start]),int

数据结构入门-线性结构

蹲街弑〆低调 提交于 2019-12-04 02:13:47
把所有的节点用一根直线串起来 连续存储[数组] 什么叫做数组:元素类型相同,大小相等 重点看代码吧,需要注意的都在注释里,多敲几遍,当然了,有些功能还没有实现,以后再实现 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 定义了一个数据类型,这个数据类型的名字叫做struct Arr,有三个成员 struct Arr { int * pBase; // 存储的是数组第一个元素的地址 int len; // 数组所能容纳的最大元素的个数 int cnt; // 当前元素有效元素的个数 }; void init_arr(struct Arr * pArr , int length); bool append_arr(struct Arr * pArr , int val); bool insert_arr(struct Arr * pArr , int pos , int val); //pos值从1开始 bool delete_arr(struct Arr * pArr , int pos , int *pval); // 这个指针用来接收删除的那个值 bool is_empty(struct Arr * pArr ); bool is_full(struct Arr * pArr ); void sort

python之字符串切分

北城以北 提交于 2019-12-03 21:16:58
在工作中,经常遇到字符串切分,尤其是操作linux命令,返回一段文本,如下面这种格式 Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.1G 35G 9% / tmpfs 939M 0 939M 0% /dev/shm 在整理数据时,以前我都是直接split(' '), 结果当然是很不理想啊,今天get到了一个新技术----直接split() 下面看示例: if __name__ == '__main__': line = '/dev/vda1 40G 3.1G 35G 9% /' arr = line.split() print(arr) # ['/dev/vda1', '40G', '3.1G', '35G', '9%', '/'] 结果很理想,管你几个空格,我全给你干掉,然后搞成一个顺眼数组,完美!! 此别,python还有个filter函数,使用起来也是牛一逼,且看如下示例 if __name__ == '__main__': line = '/dev/vda1 40G 3.1G 35G 9% /' # arr = line.split() # print(arr) ret = list(filter(None, line.split(' '))) print(ret) #['/dev/vda1',

数组新增方法(一)----------Array.includes()函数的用法

两盒软妹~` 提交于 2019-12-03 21:10:49
在ES5中,Array已经提供了indexOf()用来查找某个元素的位置,indexOf()方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于 -1 ,表达起来不够直观。二是,它内部使用严格相等运算符( === )进行判断,这会导致对NaN的误判。 const arr = [1,2,3,4,5,NaN] console.log(arr.indexOf(1)) //0 console.log(arr.indexOf(7)) //-1 console.log(arr.indexOf(NaN)) //-1 ES6提供了Array.includes()函数判断是否包含某一元素,解决了indexOf()的上述问题。它直接返回true或者false表示是否包含元素,对NaN一样有效 const arr = [1,2,3,4,5,NaN] console.log(arr.includes(1)) //true console.log(arr.includes(7)) //false console.log(arr.includes(NaN)) //true 该方法的第二个参数表示搜索的起始位置,默认为 0 。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为 -4 ,但数组长度为 3 ),则会重置为从 0 开始。 const

指针专题2-数组指针

白昼怎懂夜的黑 提交于 2019-12-03 20:34:56
1 以指针的方式遍历数组元素 int arr[]={11, 22, 33, 44, 55 }; int len = sizeof(arr)/sizeof(int); //求数组长度 char i; for(i=0; i<len; i++) { printf("%d ", *(arr+i)); //*(arr+i)等价于arr[i] }   arr是int*类型,每次加1时,arr自身的值(地址)会增加sizeof(int)。 2 以数组指针的方式遍历数组元素 int arr[]={11. 22, 33, 44, 55 }; int len = sizeof(arr)/sizeof(int), *p=&arr; //等价于*p=&arr[0] char i; for(i=0; i<len; i++) { printf("%d ", *(p+i)); //*(p+i)等价于*(arr+i) }   p、arr、&arr[0] 等价   *(p+i)、*(arr+i)、arr[i]、p[i ]等价 3 借助自增运算符遍历数组元素   不管是数组名还是数组指针,都可以用上面的两种方式来访问数组元素,不同的是:数组名是常量,他的值不能被改变;数组指针是变量(除非特别指明它是常量),它的值可以任意改变。也就是说,数组名只能指向数组的开头,而数组指针可以先指向数组开头,再指向其他元素。 int

Python标准库11 多进程探索 (multiprocessing包)

徘徊边缘 提交于 2019-12-03 17:51:26
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在 初步了解Python多进程 之后,我们可以继续探索multiprocessing包中更加高级的工具。这些工具可以让我们更加便利地实现多进程。 进程池 进程池 ( Process Pool )可以创建 多个进程 。这些进程就像是随时待命的士兵,准备执行任务(程序)。一个进程池中可以容纳多个待命的士兵。 “三个进程的进程池” 比如下面的程序: import multiprocessing as mul def f(x): return x**2 pool = mul.Pool(5) rel = pool.map(f,[1,2,3,4,5,6,7,8,9,10]) print(rel) 我们创建了一个容许5个进程的进程池 (Process Pool) 。Pool运行的每个进程都执行f()函数。我们利用 map() 方法,将f()函数作用到表的每个元素上。这与 built-in的map()函数 类似,只是这里用5个进程 并行 处理。如果进程运行结束后,还有需要处理的元素,那么的进程会被用于重新运行f()函数。除了map()方法外,Pool还有下面的常用方法。 apply_async( func,args ) 从进程池中取出一个进程执行func,args为func的参数