我目前正在学习Big O Notation运行时间和摊销时间.我理解O(n)线性时间的概念,意味着输入的大小成比例地影响算法的增长...例如,二次时间O(n 2)等也是如此.即使算法也是如此. ,例如置换生成器,具有O(n!)倍,通过阶乘生长.
例如,以下函数是O(n),因为算法与其输入n成比例增长:
f(int n) {
int i;
for (i = 0; i < n; ++i)
printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)
同样,如果有嵌套循环,则时间为O(n 2).
但究竟什么是O(log n)?例如,说完整二叉树的高度是O(log n)是什么意思?
我知道(可能不是非常详细)什么是对数,在这个意义上:log 10 100 = 2,但我无法理解如何识别具有对数时间的函数.
而在插入模式在Vim中,有没有什么办法来遍历文本移动一些字符向前和向后除了使用箭头键?
如果我按h,j,k和l在插入模式下,实际的字符显示在屏幕上,而不是在文本上移动.
我现在这样做的方式是不得不求助于Ctrl+ [(Esc)然后遍历文本; 但显然这不是很有成效.
我很好奇为什么<center>HTML中的标记已被弃用.
这<center>是一种通过将容器封装在<center>标签中来快速居中对齐文本和图像块的简单方法,我现在找不到任何更简单的方法来实现它.
任何人都知道如何集中"东西"(不是margin-left:auto; margin-right:auto;和宽度的东西)的任何简单方法,取代的东西<center>?而且,为什么它被弃用了?
我理解如果我传递一个值类型(int,struct等)作为参数(没有ref关键字),该变量的副本将传递给该方法,但如果我使用该ref关键字,则传递对该变量的引用,不是新的.
但是使用引用类型(如类),即使没有ref关键字,也会将引用传递给方法,而不是副本.那么ref关键字与引用类型的用途是什么?
举个例子:
var x = new Foo();
Run Code Online (Sandbox Code Playgroud)
以下有什么区别?
void Bar(Foo y) {
y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud)
和
void Bar(ref Foo y) {
y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud) 说我想要一个TextBlock有它Width等于它的父容器的Width(即从一侧伸展到另一侧)或它的一个百分比的父容器Width,我怎么能做到这一点XAML,而无需指定绝对值?
我想这样做,以便如果稍后展开父容器容器(它的' Width增加),它的'子元素也将自动扩展.(基本上,就像在HTML和CSS中一样)
到目前为止,我一直在家里开发我的个人和学校项目,而不使用任何形式的修订控制软件来处理我的变化等等.
我的问题是,对我自己(甚至是学校项目)的个人项目使用版本控制应用程序(如TortoiseSVN)有多可行?
签入,提交更改和所有例行程序的麻烦,仅仅针对"家庭项目"而不仅仅是手动备份?
链接:
请考虑以下事项:
class A {}
class B : A {}
class C
{
C()
{
var b = new B();
Foo(b);
Foo2(ref b); // <= compile-time error:
// "The 'ref' argument doesn't match the parameter type"
}
void Foo(A a) {}
void Foo2(ref A a) {}
}
Run Code Online (Sandbox Code Playgroud)
为什么会发生上述编译时错误?两者ref和out参数都会发生这种情况.
我不断听到这句话" 回调 "和" 回发 "左右颠簸.
两个有什么区别?
回发是非常特定的ASP.NET页面?
在某些情况下,我想要使用扩展方法覆盖类中的方法.有没有办法在C#中做到这一点?
例如:
public static class StringExtension
{
public static int GetHashCode(this string inStr)
{
return MyHash(inStr);
}
}
Run Code Online (Sandbox Code Playgroud)
在那里我一直想做到这一点的情况是能够将一个字符串的哈希存储到数据库中,并有相同的值由所有使用String类的哈希值(即词典等)由于类使用内置的.Net哈希算法不能保证从一个版本的Framework到下一个版本兼容,我想用我自己的版本替换它.
还有其他情况我遇到了我想用扩展方法覆盖类方法的地方,所以它不仅仅特定于字符串类或GetHashCode方法.
我知道我可以通过子类化现有的类来做到这一点但是在很多情况下能够使用扩展来做它会很方便.
我需要能够使用给定的参数集传递对函数的引用.
以下是传递不带参数的引用的示例:
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
Run Code Online (Sandbox Code Playgroud)
现在我需要做的是传递相同的f函数,但这次我需要将参数传递给引用.现在,我可以使用匿名函数来执行此操作,并f使用新创建的函数内的参数调用函数,如下所示:
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a …Run Code Online (Sandbox Code Playgroud) c# ×3
javascript ×2
asp.net ×1
big-o ×1
callback ×1
center ×1
deprecated ×1
html ×1
overriding ×1
parameters ×1
polymorphism ×1
postback ×1
resize ×1
svn ×1
tags ×1
vi ×1
vim ×1
wpf ×1
xaml ×1