algorithm 相关问题

算法是一系列明确定义的步骤,用于定义问题的抽象解决方案。当您的问题与算法设计相关时,请使用此标记。


将光频率转换为RGB?

任何人都知道有任何将光频率转换为RGB值的公式吗?

回答 7 投票 0







自从我在大学里服用

(如果有的话)是什么(如果有的话)是迭代性与递归遍历的优点?在什么情况下,我可以使用一个而不是另一种情况?

回答 2 投票 0

为什么打电话给segfault

中实现Myers差异算法。 当试图释放先前分配给路径变量的内存时,我会得到一个segfault,用于存储D和K.

回答 1 投票 0

java,分类分析。 hepsort,QuickSort1,QuickSort2,Mergesort,给定一个BlackBox

I在Java上给了一个名为BlackBox.java的课程。此类中有四种类型的排序方法,它们称为Sort1,Sort2,Sort3和Sort4。鉴于我们有Mergesort,Hapso ...

回答 1 投票 0

快速算法将U8的位扩散到U64

看钻头的见解,以优化算法以将8位整数的位扩散到64位整数的每个位的LSB。例子: 0B10110011-> 0x0100010100000101 最好的...

回答 1 投票 0

binary搜索k

while(left<right) while(left<=right) there是完整的代码: public static int searchFirstOfK(List<Integer> A, int k) { int left = 0, right = A.size() - 1, result = -1; // A.subList(left, right + 1) is the candidate set. while (left <= right) { int mid = left + ((right - left) / 2); if (A.get(mid) > k) { right = mid - 1; } else if (A.get(mid) == k) { result = mid; // Nothing to the right of mid can be the first occurrence of k. right = mid - 1; } else { // A.get(mid) < k left = mid + 1; } } return result; } 我如何知道何时使用左侧的距离小于或等于右,或者仅使用左图小于右。 在此答案上构建另一个二进制搜索问题:如何简化C?中的此工作二进制搜索代码 如果您想找到第一次出现的位置,那么找到匹配元素时就无法停止。 您的搜索应该看起来像这样(当然,假设列表已排序): int findFirst(List<Integer> list, int valueToFind) { int pos=0; int limit=list.size(); while(pos<limit) { int testpos = pos+((limit-pos)>>1); if (list.get(testpos)<valueToFind) pos=testpos+1; else limit=testpos; } if (pos < list.size() && list.get(pos)==valueToFind) return pos; else return -1; } 注意,我们只需要在迭代中进行一次比较。 二进制搜索找到了所有前面元素小于valueToFind的独特位置,并且所有以下所有元素都更大或相等。 链接的答案突出了以这种方式编写二进制搜索的几个优点。 简单地提出了编号 考虑数组仅具有一个元素的情况,即,要搜索的元素也是{0}。 在这种情况下,0,但是如果您的病情为left == right,则while(left<right)将返回。 此答案是在已发布的代码的上下文中。如果我们谈论的是替代方案,以便我们可以使用searchFirstOfK,那么马特·蒂默尔人的答案是正确的,并且是一种更好的方法。 贝洛(Below)是马特(OP-称为普通二进制)和Matt Timmermans(我们称其为优化的二进制)方法的thecomparison,用于包含0到5000000之间的值的列表: 这个是一个非常有趣的问题。事情是有一种方法可以始终正确地进行二进制搜索。事情是确定正确的范围并避免单个元素卡住行为。 -1 仅要记住的关键是,您总是将左派作为最小的不满意元素,并且是最大的条件满足元素。一旦您通过此方法理解范围划分,您将永远不会在二进制搜索中失败。 上面的初始化将为您提供满足最大的条件。 通过更改初始化,您可以获得各种元素(例如满足元素的小条件)。

回答 2 投票 0

最有效的修剪平均算法 我正在使用微控制器测量1024个值,我目前正在平均这样的值: uint16_t avg = val [0]; for(uint16_t i = 1; i

uint16_t avg = val[0]; for(uint16_t i = 1; i < BUF_SIZE; i++) { avg = (avg + val[i]) / 2; } < BUF_SIZE; i++) { avg = (avg + val[i]) / 2; ...

回答 1 投票 0



如何根据日期选择一个范围内的随机数? 我有数百种扇区类型的列表,其ID值范围为1..999。用户希望每天在网站上看到一个不同的随机扇区。 解决此问题的一种方法是S ...

I还认为我可以列出1..999的列表,并使用一些随机算法来根据日期选择一个随机数,因此,只要日期与最后一次选择随机号码相同,同样的数字将出现。

回答 3 投票 0


连续成对可除以3

为一个整数作为输入,数组的大小为n。 在循环中执行以下步骤,直到列表中的第一个N-1项为3的倍数。 对于数组i的索引,从i = 0开始,

回答 1 投票 0


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.