最近,我想介绍一下是如何使用自定义方法在任何给定时间比较两个值的,并决定是交换还是单独处理。我决定在每次比较期间记录数组,以便可以看到前面比较的结果。当我记录数组时,我注意到在某些时刻,数组的状态有些奇怪。
假设如下:
var num = [ 2, 1, 8, 5, 3 ];
num.sort( comparator );
function comparator ( a, b ) {
console.log( num ); // Current state of num
return a - b; // Order values numerically
}
这是输出:
[
我是哈斯克尔的新手,我不知道我在这里做错了什么。下面的代码生成一个错误。
numOfPos :: Num a => [a] -> Int
numOfPos xs = length [x | x <- xs, x > 0]
代码只返回列表中的正元素数。列表可以包含任何类型的数字。
这个错误说“无法从上下文(Num a) .”中推断出'<‘的用法.
允许这个函数的类型声明应该是什么?
我正在尝试交换列表中的两个元素,我真的不确定为什么我不能工作。
正确的实现应该执行以下操作:
list_swap_val [5;6;7;3] 75 => [7;6;5;3]
list_swap_val [5;6;3] 7 5 => [7;6;3]
下面是我尝试过的两种不同的实现,但似乎都只是返回原始列表
let rec list_swap l u v =
match l with
|[] -> []
|h::t -> if h = u then u::(list_swap t u v)
else if h = v then
我在c ++中实现quick_select,但是我的代码出错了,我花了很长时间才找到原因,但我仍然无法理解。
函数get_pivot是为quick_select找到一个支点,下面是错误的代码:
int get_pivot(int*arr, int beg, int end)
{
int middle = arr[(beg + end) / 2];
if (middle < arr[beg])
swap(&middle, &arr[beg]);
if (arr[end] < arr[beg]
我编写了一个简单的C++代码来检查数据排序的速度,以列表和向量的形式表示。
在列表的例子中,我有27秒的时间。对于向量我有10秒的时间。为什么会有巨大的绩效差距?用于排序列表和向量的算法不是相同的吗?那就是。合并?
编辑:我可能在最后一点上错了。据我所知,教科书在理论上对排序算法进行去圈时,似乎使用的是list这个词,意思是std::vector。我不知道向量排序算法和列表排序算法有什么不同,所以如果有人能澄清,这将是非常有帮助的。谢谢。
//In this code we compare the sorting times for lists and vectors.
//Both con
完成我对java项目的最后介绍。Java (3个月)仍然很新。我在分析两个数组和两个排列的圆圈。然后我对其中的一个列表和一个数组列表进行排序。我在努力弄清楚如何按半径按升序排序。使用Collections.sort(sortedList)和intellisense表示我有一个错误“类型集合中的方法排序(列表)不适用于参数(ArrayList)”。同时,试图对数组进行排序,我得到的错误是“赋值的左边必须是一个变量”,我做错了什么?这是处理这个问题的最佳方法吗?这是我的代码片段。
public class CircleList
{
Random rand = new Random();
我在做这个练习
演习4.4
编写谓词swap12( List1,List2),检查List1是否与List2相同,但前两个元素是交换的。
到目前为止,这就是我所拥有的:
swap12([],[]).
swap12([a, b | Ta], [b, a | Tb]) :- swap12(Ta, Tb).
但是,当我试图评估这一点时,我得到以下信息:
?- swap12(X, Y).
X = Y, Y = [] ;
X = [a, b],
Y = [b, a] ;
X = [a, b, a, b],
Y = [b, a, b, a] .
我做错了什么?
其目标是实现如下内容:
swap12
我试图创建一个矩阵,它是q乘3。在这种情况下,Q= 10。或者每一行我希望这三个值是在下面的代码中描述的三角函数的结果。
问题是,我一直收到一个错误,说列表索引超出了范围。我不明白为什么它说它超出了范围。在我看来,我的循环是正确的。有人能告诉我我忽视了什么/做错了什么吗?
# Input az matrix
az = [142.243258152,116.039625836,80.1585056414,139.614063776,87.2093336287,94.1433825229,35.5599100744,11.0328982848,177.717968103,19.007269
我是你世界的初学者。我见过很多尝试用花哨的内置函数来回答这个问题,并且已经找到了上千次关于如何解决这个问题的答案,但是没有一个使用了两个for循环方法。
当代码在字符串中找到元音时,我希望代码只反转元音,使用两个for循环方法。
我编写了一些似乎不起作用的代码,我不太明白为什么,
for x in newWord:
for y in vowels:
if x == y:
newWord[x] = newWord[7]
打印newWord
元音是元音列表,newWord也是元音列表。
这段代码目前无法工作,就像其他大多数尝试过这两个for循环方法的人一样。任何帮助都