标签: space-efficiency

有效地查找数组中元素的行列?

如何有效地找到数组中每个元素的排名,在平局的情况下求平均值?例如:

float[] rank(T)(T[] input) {
    // Implementation
}

auto foo = rank([3,6,4,2,2]);  // foo == [3, 5, 4, 1.5, 1.5]
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是分配 3 个数组:

  1. 输入数组的副本,因为它必须排序并且我们不拥有它。
  2. 一个数组,用于跟踪输入数组的排序顺序。
  3. 要返回的行列数组。

有谁知道如何在 O(N log N) 时间和 O(1) 辅助空间中执行此操作(意味着我们必须分配的唯一数组是我们要返回的数组),或者至少摆脱其中之一上面的三个数组?

sorting algorithm statistics performance space-efficiency

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

最有效的数据库日期存储方法?

所以我希望在我的SQL数据库中存储一个日期,并且不确定最有效的方法是什么.我想到了两种不同的方法.

首先,人们将能够为每一天设定一定的价格.

例如:

2011年3月8日:1美元

2011年3月9日:2美元

2011年3月10日:5美元

对于我的数据库,我考虑的是存储UNIX时间戳或在单独的字段中存储月,日和年.

第一种方法:

UNIX时间戳

优点

  • 只有一个领域

缺点

  • 必须将日期转换为时间戳
  • 必须在开始和结束日期之间进行搜索
  • 容易在搜索中出错

月日年

优点

  • 更容易搜索

缺点

  • 更多领域
  • 占用更多空间
  • 将存储大量数据,因此可能会减慢数据库的速度.

有了上述信息,您的建议是什么?(我可以澄清是否有任何不清楚.)

php sql date space-efficiency

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

在 C# 中用零初始化一个浮点列表

我想用零( 0.0 )启动 N 个对象的列表。我想这样做:

var TempList = new List<float>(new float[(int)(N)]);
Run Code Online (Sandbox Code Playgroud)

有没有更好(更有效)的方法来做到这一点?

c# initialization list space-efficiency

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

算法的空间效率

似乎没有一个算法教科书提到太空效率,所以当我遇到要求只需要恒定记忆的算法的问题时,我真的不明白.

什么是使用常量内存和不使用常量内存的算法的算法示例?

language-agnostic algorithm space-efficiency

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

什么是Java最轻的非并发Iterable实现?

我需要一个实现Iterable的类,并不需要对并发使用是安全的.各种选项,如LinkedList,HashSet,ArrayList等,哪个是最轻的?

为了澄清用例,我需要能够向Iterable添加许多对象(通常为3或4),然后需要对其进行迭代.

java optimization space-efficiency

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

如何组合异常以摆脱重复代码?

如何最小化代码中重复的异常抛出代码:

public R get(int index) throws IndexException {
  if (!((0 <= index) && (index < this.info.length))) {
    throw new IndexException();
  }
  return this.info[index];
}

public void set(int index, R r) throws IndexException {
  if (!((0 <= index) && (index < this.info.length))) {
    throw new IndexException();
  }
  this.info[index] = r;
}
Run Code Online (Sandbox Code Playgroud)

java exception space-efficiency

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

Oracle SQL - 是否有更有效的方法来组织大规模的case语句

目前我有一份报告,查看不同类型的文件.每个文档都有一个指定的时间表,它应该完成(即2天,4天等).有超过100种类型的文件.目前,每个文档的分配时间刻度保存在Excel电子表格中,并使用vlookup公式(基于评估ID)与excel中的数据匹配.遗憾的是,我们的数据库中没有地方可以放置这个指定的时间刻度,但我希望能够从数据库运行报告并将其发送给用户,而无需在Excel中执行此额外操作.我知道我可以通过写一个大规模的案例陈述来实现这一目标(下面只是一个例子)

即

SELECT
ID,
CASE WHEN ID = 1 then '1 day' 
WHEN ID = 2 then '42 days'
WHEN ID = 3 then '16 days'
ELSE 'CHECK' end as 'Timescale'
FROM TABLE1
Run Code Online (Sandbox Code Playgroud)

但我确实想知道在SQL中是否有更有效的方法(除了请求数据库中的其他字段来记录这个!)?可能没有,但认为值得问!谢谢.

sql oracle case space-efficiency

0
推荐指数
1
解决办法
238
查看次数

如何使用不同的名称制作一定数量的变量?

我已经开始使用C#编程来开发一些控制台应用程序,我想知道如何以更有效的方式使用不同的名称来创建一定数量的变量.现在我正在做这样的事情:

for(int i=1; i<=x; i++)
    switch(i) {
        case 1:
            Player player1=new Player(i, x);
            break;
        case 2:
            Player player2=new Player(i, x);
            break;
        case 3:
            Player player3=new Player(i, x);
            break;
        case 4:
            Player player4=new Player(i, x);
            break;
        case 5:
            Player player5=new Player(i, x);
            break;
        case 6:
            Player player6=new Player(i, x);
            break;
    }
Run Code Online (Sandbox Code Playgroud)

我只是想知道是否有更有效的方法来解决这个问题以及这些方法是什么.

c# console loops space-efficiency

0
推荐指数
1
解决办法
136
查看次数