小编Bri*_*ian的帖子

Arrays.equals()的时间复杂度

我有两个char从两个字符串生成的数组.我想确定数组是否等于.

str1Array = str1.toCharArray();
str2Array = str2.toCharArray();
Run Code Online (Sandbox Code Playgroud)

我的理解是,str1Array.equals(str2Array)只有true当数组对象是内存中的同一个对象时才会返回.如果我想检查每个索引是否相同,我应该使用Arrays.equals(str1Array, str2Array)

我想知道这种equals方法的复杂性.

我假设它不能是O(1)因为它不能在不检查每个索引的相等性的情况下评估数组对象的内容相等性.我的猜测是,它是O(n)其中n对应于min(str1Array.length, str2Array.length)

任何人都可以验证这个或评论否则?

java arrays equals char time-complexity

5
推荐指数
1
解决办法
1856
查看次数

What does ** mean in C?

I have a sample C program I am trying to understand. Below is a function excerpt from the source code:

double** Make2DDoubleArray(int arraySizeX, int arraySizeY)
{
  double** theArray;
  theArray = (double**) malloc(arraySizeX*sizeof(double*));
  int i = 0;

  for (i = 0; i < arraySizeX; i++)
    theArray[i] = (double*) malloc(arraySizeY*sizeof(double));

  return theArray;
}
Run Code Online (Sandbox Code Playgroud)

My question is what is the significance of the ** in the return type. I know that the * is generally used as a pointer. I know that …

c memory pointers reference dereference

5
推荐指数
1
解决办法
1万
查看次数

CSR矩阵 - 矩阵乘法

我有两个方阵AB

我必须转换BCSR Format并确定产品C

A * B_csr = C
Run Code Online (Sandbox Code Playgroud)

我在网上找到了很多关于CSR矩阵 - 矢量乘法的信息.算法是:

for (k = 0; k < N; k = k + 1)
  result[i] = 0;

for (i = 0; i < N; i = i + 1)
{  
  for (k = RowPtr[i]; k < RowPtr[i+1]; k = k + 1)
  {  
    result[i] = result[i] + Val[k]*d[Col[k]];
  }  
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要Matrix - Matrix乘法.

此外,似乎大多数算法A_csr - vector在我需要的地方应用乘法A …

c++ algorithm matrix sparse-matrix matrix-multiplication

5
推荐指数
1
解决办法
7067
查看次数

Java安全 - 缺少lib/security目录

我正在尝试使用Mac OS X 10.10 构建Apache Storm Starter ProjectMaven

我失败了构建,因为SunCertPathBuilderException这表明我需要在我的$JAVA_HOME/lib/security目录中添加安全证书.

这篇Stackoverflow帖子暗示我正在寻找正确的地方.

JAVA_HOME = /图书馆/的Java/JavaVirtualMachines/jdk1.8.0_71.jdk /内容/首页

但是,我的$JAVA_HOME/lib目录不包含此类安全子目录.内容如下:

ant-javafx.jar ct.sym dt.jar ir.idl javafx-mx.jar jconsole.jar missioncontrol orb.idl packager.jar sa-jdi.jar tools.jar visualvm

为什么我没有这个安全目录?另外,这是否真的有必要从Apache构建一个示例项目?

如何设置我的JDK来构建这样的情况?

java security ssl-certificate maven osx-yosemite

5
推荐指数
1
解决办法
6213
查看次数

错误:无法找到或加载主类weblogic.security.Encrypt

我正在尝试为Java EE Application终端中的我加密数据库密码.根据本教程

步骤如下:

  1. 将目录更改为域的bin文件夹(例如,cd.WLS_home\user_projects\domains\mydomain\bin)
  2. 使用setDomainEnv.cmd/sh脚本来设置环境
  3. 运行java weblogic.security.Encrypt将提示输入密码,并将在stdout中打印加密值.

但是,当我执行'java weblogic.security.Encrypt'时,我会看到以下内容:

错误:无法找到或加载主类weblogic.security.Encrypt

我正在Eclipse中开发我的项目并在Eclipse中配置了我的Weblogic-12.1.3服务器.我不确定为什么会发生这种错误,但我希望它是因为我的java版本是1.8,也许它希望我使用java 1.6,我认为它与Weblogic安装一起提供.

java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java eclipse encryption weblogic weblogic12c

4
推荐指数
1
解决办法
3万
查看次数

Tensorflow - Dataset API中的字符串处理

我有.txt一个格式目录中的文件<text>\t<label>.我正在使用TextLineDatasetAPI来使用这些文本记录:

filenames = ["/var/data/file1.txt", "/var/data/file2.txt"]

dataset = tf.contrib.data.Dataset.from_tensor_slices(filenames)

dataset = dataset.flat_map(
    lambda filename: (
        tf.contrib.data.TextLineDataset(filename)
        .map(_parse_data)))

def _parse_data(line):   
    line_split = tf.string_split([line], '\t')
    features = {"raw_text": tf.string(line_split.values[0].strip().lower()),
                "label": tf.string_to_number(line_split.values[1], 
                    out_type=tf.int32)}
    parsed_features = tf.parse_single_example(line, features)
    return parsed_features["raw_text"], raw_features["label"]
Run Code Online (Sandbox Code Playgroud)

我想对raw_text功能进行一些字符串清理/处理.当我尝试运行时 line_split.values[0].strip().lower(),我收到以下错误:

AttributeError:'Tensor'对象没有属性'strip'

tensorflow tensorflow-datasets

4
推荐指数
1
解决办法
3057
查看次数

在R中创建二进制指示符矩阵(布尔矩阵)

我有一个数据列表,表明出席这样的会议:

Event                     Participant  
ConferenceA               John   
ConferenceA               Joe  
ConferenceA               Mary    
ConferenceB               John  
ConferenceB               Ted  
ConferenceC               Jessica  
Run Code Online (Sandbox Code Playgroud)

我想创建一个以下格式的二进制指标考勤矩阵:

Event        John  Joe  Mary  Ted  Jessica  
ConferenceA  1     1    1     0    0  
ConferenceB  1     0    0     1    0  
ConferenceC  0     0    0     0    1  
Run Code Online (Sandbox Code Playgroud)

在R中有办法做到这一点吗?

r matrix dummy-data

3
推荐指数
1
解决办法
7069
查看次数

使用多线程处理对Java数组进行分区和分析

我必须通过for循环初始化一个浮点[12000] 12000次.然后我扫描数组以查找超过特定阈值的值.如果值超过阈值,我操纵某个对象的实例变量.

例:

Random random = new Random();
float[] x = new float[12000];

for (int i = 0; i < x.length; i++) {
  x[i] = random.nextFloat();
}

for (int i = 0; i < x.length; i++) {
  if (x[i] >= 0.75) {
  \\ do something interesting
  }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我必须更改数组的值,并在每次长度为12000时在新数组上执行12000次."有趣的"代码只是在另一个数据结构中查找该索引并调用setter.根据我的系统时间计算,我需要大约13个小时.我的机器上有8个处理器.

如何利用java的多线程功能?我特意寻找分区初始化和扫描数组的线程解决方案.使用线程的源代码将不胜感激.

java arrays multithreading

3
推荐指数
1
解决办法
6743
查看次数

Spark - 按键分组,然后按值计数

我有一些非唯一的键值对,我使用的map函数创建了RDD Array[String]

val kvPairs = myRdd.map(line => (line(0), line(1)))
Run Code Online (Sandbox Code Playgroud)

这会生成以下格式的数据:

1, A
1, A
1, B
2, C
Run Code Online (Sandbox Code Playgroud)

我想按照它们的值对所有键进行分组,并提供这些值的计数,如下所示:

1, {(A, 2), (B, 1)}
2, {(C, 1)}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的尝试,但我能得到的最接近的是这样的:

kvPairs.sortByKey().countByValue()
Run Code Online (Sandbox Code Playgroud)

这给了

1, (A, 2)
1, (B, 1)
2, (C, 1)
Run Code Online (Sandbox Code Playgroud)

也,

kvPairs.groupByKey().sortByKey()
Run Code Online (Sandbox Code Playgroud)

提供价值,但它仍然不是那里:

1, {(A, A, B)}
2, {(C)}
Run Code Online (Sandbox Code Playgroud)

我尝试将两者结合在一起:

kvPairs.countByValue().groupByKey().sortByKey()
Run Code Online (Sandbox Code Playgroud)

但这会返回错误

错误:value groupByKey不是scala.collection.Map的成员[(String,String),Long]

scala mapreduce key-value apache-spark rdd

3
推荐指数
1
解决办法
2万
查看次数

使用String.length()和string.toCharArray()进行速度/效率权衡.长度

我有一个接受String参数的方法.我需要将我转换String为a char[]进行处理.但是,如果我的String大于某个长度,我可以停止处理我的方法逻辑.

public void doSomething(String str) {
  char[] strArray = str.toCharArray();
  // do something
}
Run Code Online (Sandbox Code Playgroud)

我知道在空间效率方面,我应该str.length()在创建之前检查一下char[].但是,这让我思考.在时间复杂度方面,假设我还需要它,这会更有效char[]吗?

假设我已经有两个物体Stringchar[],这是更快/更有效?

  1. str.length()

  2. strArray.length

java arrays string performance char

2
推荐指数
2
解决办法
2232
查看次数