问题列表 - 第40099页

为什么quicksort的平均速度比其他人快?

我们知道,快速排序性能平均为O(n*log(n)),但合并和堆性能平均也是O(n*log(n)).所以问题是为什么quicksort的平均速度更快.

arrays sorting algorithm performance quicksort

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

如何使用提示文本预填充输入文本字段,该文本在键入时消失(jQuery)

当您单击"Ask Question"Stack Overflow 上的按钮时,问题标题部分将预先填充浅灰色文本

"what's your programming question? be specific"
Run Code Online (Sandbox Code Playgroud)

然后,当您在标题字段内单击并开始键入时,该文本将消失.

我想在我的应用程序中做同样的事情.

在jQuery中有一个技巧可以实现吗?

而且,具体来说,当有人开始输入时,如何将文本颜色从占位符文本的浅灰色更改为默认文本颜色?

jquery

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

rails,给出来自WYSIWYG的HTML字符串 - 如何获取文本

我有一个来自WYSIWYG的大型HTML字符串,并希望显示只是文本的截断字符串,没有html或html标记.有没有办法把这个内置到rails或我需要一个gsub摆脱所有的HTML括号?

谢谢

ruby-on-rails ruby-on-rails-3

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

没有控制上下文的回发

我有一种情况,我想使用几个服务器端控件,它们具有客户端状态.我想检查事件发生时的状态(如各种点击),当状态是我想要的时候,我想回发到服务器并进行一些处理.

特别是,我需要确保在我想要回发之前至少有3个不同的控件有选择.由于没有特定的控件可以启动回发,我只想捕获客户端的选择事件,然后调用__doPostBack()(或类似的东西)来启动处理.所以我已经禁用了所有服务器端事件,关闭了autopostback,并连接了一些javascript来处理这个问题.

我已经编写了所有客户端代码并且正在工作,但是我似乎无法让服务器端识别回发.我重写了RaisePostBackEvent,并检查了eventArgument以获取我的自定义参数.这不起作用,因为从不调用RaisePostBackEvent.

启用自动后备功能时,此方法有效(例如,Telerik Radgrid OnSelectChanged服务器端事件).

有关处理此问题的最佳方法的任何建议吗?

更新:

当被问到示例代码时,就像我上面说的那样.不是火箭科学.

使用Javascript:

function CheckState(source, eventArgs) {
    // logic to test state of controls
    __doPostBack("", "DoMyWork:");
}
Run Code Online (Sandbox Code Playgroud)

然后在代码后面我有:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
    if (eventArgument.IndexOf("DoMyWork") != -1)
    {
        // do my server side work.
    }
}
Run Code Online (Sandbox Code Playgroud)

解析度:

因为这有点让人困惑.我只想说明我的解决方案是什么.

我使用了回发中涉及的其中一个控件,并使用它的唯一ID作为控件参数,然后将我的方法用作事件.

javascript asp.net postback

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

Python - 缓存属性以避免将来计算

在以下示例中,cached_attr用于related_spam在调用数据库昂贵的属性(在示例中)时获取或设置模型实例上的属性.在示例中,我cached_spam用来保存查询.我在设置和获取值时放置了print语句,以便我可以测试它.我通过将Egg实例传递到视图和视图中来测试它,并使用模型{{ egg.cached_spam }}上的其他方法Egg调用cached_spam他们自己.当我完成并测试它时,Django的开发服务器中的shell输出显示属性缓存被错过了好几次,并成功获得了几次.这似乎是不一致的.使用相同的数据,当我进行小的更改(只需更改print语句的字符串)并刷新(使用所有相同的数据)时,会发生不同数量的未命中/成功.这是怎么发生的?这段代码不正确或有问题吗?

class Egg(models.Model):
    ... fields

    @property
    def related_spam(self):
        # Each time this property is called the database is queried (expected).
        return Spam.objects.filter(egg=self).all()  # Spam has foreign key to Egg.

    @property
    def cached_spam(self):
        # This should call self.related_spam the first time, and then return
        # cached results every time after that.
        return self.cached_attr('related_spam')

    def cached_attr(self, attr):
        """This method (normally attached via an abstract base class, …
Run Code Online (Sandbox Code Playgroud)

python django attributes caching properties

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

RDBMS是否如Hadoop中描述的那样糟糕:权威指南?

我正在阅读Hadoop:Tom White的权威指南.在第13.6节"HBase与RDMS"中,他说如果你有很多数据,即使是简单的查询,比如获得10个最近的项目,也是非常昂贵的,他们不得不使用python和PL/SQL重写它们.

他给出了以下查询作为示例:

SELECT id, stamp, type FROM streams 
WHERE type IN ('type1','type2','type3','type4',...,'typeN')
ORDER BY stamp DESC LIMIT 10 OFFSET 0;
Run Code Online (Sandbox Code Playgroud)

并说:"RDBMS查询计划程序将此查询视为如下:

MERGE (
  SELECT id, stamp, type FROM streams
    WHERE type = 'type1' ORDER BY stamp DESC,
  ...,
  SELECT id, stamp, type FROM streams
    WHERE type = 'typeK' ORDER BY stamp DESC
) ORDER BY stamp DESC LIMIT 10 OFFSET 0;
Run Code Online (Sandbox Code Playgroud)

这里的问题是我们只关注前10个ID,但查询规划器实际上实现了整个合并,然后在最后限制.....实际上我们写了一个执行heapsort的自定义PL/Python脚本....几乎在所有情况下,这都优于本机SQL实现和查询规划器的策略......

预期的穿孔和expermiental结果

我无法想象会导致此类问题的数据集,您必须编写pl/python才能执行此类简单查询.所以我已经玩了一段时间来解决这个问题,并提出了以下观察:

这种查询的性能受O(KlogN)限制.因为它可以翻译成如下内容:

SELECT * FROM (
  SELECT id, stamp, type FROM streams
    WHERE type = 'type1' …
Run Code Online (Sandbox Code Playgroud)

postgresql rdbms hbase nosql

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

Node.js的循环模块

几分钟前我问过循环,请参阅JavaScript中的Asynchronous for cycle.

这一次,我的问题是 - Node.js有什么模块吗?

for ( /* ... */ ) {

  // Wait! I need to finish this async function
  someFunction(param1, praram2, function(result) {

    // Okay, continue

  })

}

alert("For cycle ended");
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

如何为 ASP.NET MVC 3 + Razor 视图封装可重用的“控件”

我正在寻找有关如何创建可在多个 MVC 3 视图上使用的可重用“控件”的最佳实践。我可以创建一个 Html 帮助程序扩展方法(以编程方式或使用 razor 中的声明性帮助程序),或者我可以创建一个部分视图。

就我而言,诀窍是我需要做的不仅仅是将一些 HTML 转储到视图调用帮助器/部分的位置。除了在该位置放置一些 HTML 标记之外,我还需要添加一些 javascript 代码以使其正常工作。通常,我会将此代码放在页面的其他位置(例如底部)。这当然不是严格要求的。另请注意,JavaScript 不是特定于控件实例的。换句话说,可以编写 JavaScript 来查找页面上控件 HTMl 标记的所有实例,并使用适当的事件等“激活”它。

我想到了几种可能性。

  1. 让助手/部分转储 HTML 并<script>在调用它的地方放置一个标签。这似乎是一个坏主意,因为这意味着该控件每页只能使用一次。
  2. 有两个帮手。第一个输出 HTML 标记,第二个输出 javascript。第二个只会被调用一次,并且会从页面底部调用,以便脚本最终位于正确的位置。如果我发明了第二个这样的控件,我将有 4 个助手(2 个用于 HTML,2 个用于 Javascript)。
  3. 发明某种可以向控件注册 javascript 的 ScriptManager。脚本管理器将有某种帮助程序,该帮助程序将添加到页面底部,并为所有注册了某些脚本片段的控件转储 JavaScript。对 scriptmanager 帮助程序的调用可以位于 _layout.cshtml 中,以便它自动发生在任何需要它的页面上。当页面不需要它时,它不会执行任何操作。我猜这看起来不太像 MVC。
  4. 只需使用一个助手来输出 HTML,然后将 javascript 添加到每个页面上包含的 site.js 中即可。如果 JavaScript 在页面上找不到任何相关标记(标记将具有具有特定类的包装元素),那么它会足够聪明,不会执行任何操作。不过,在所有页面上搜索标记都会产生开销,包括没有任何这些控件的页面。
  5. 与 #4 相同,但将 javascript 放入其自己的 .js 文件中,并仅将其包含在使用该控件的页面上。这对于不使用该控件的页面来说更有效,但对于使用该控件的页面来说,它是一个附加的 .js 文件和关联的 HTTP 请求。

我倾向于#4,但这是一个已解决的问题吗?有更好的第六种选择吗?

javascript asp.net-mvc razor

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

在3D openGL世界中创建2D界面的问题

我正在开发一个项目,要求我创建一个"在顶部"或3D世界渲染的2D界面.在其他一些论坛上,我读到你可以使用"GluOrtho2D()"作为工作,并在完成后切换回GluPerspective().唯一的问题是,我为它编写的测试代码只显示3D世界,而不是2D四边形.但是,当我禁用3D渲染代码时,四边形会出现在它应该出现的位置.我将代码修剪为仅限openGL的语句,我在下面写下了这些语句.代码是使用Pyglet库用Python编写的.


场景初始化代码:

glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(60.0, float(width)/height, .1, 10000.)
glMatrixMode(GL_MODELVIEW)
glClearDepth(1.0)
glShadeModel(GL_FLAT)
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL) 
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
Run Code Online (Sandbox Code Playgroud)

帧渲染代码.对builder.buildMap()的调用创建了3D场景,glBegin-glEnd对绘制了一个2D四边形:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
stage.set3DMode(window.width, window.height)
builder.buildMap()
stage.set2DMode(window.width, window.height)
glBegin (GL_QUADS)
glVertex2i(0, 0)
glVertex2i(0, 200)
glVertex2i(200, 200)
glVertex2i(200, 0) 
glEnd()
Run Code Online (Sandbox Code Playgroud)

stage.set3DMode函数:

glDisable(GL_DEPTH_TEST) 
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluOrtho2D(0, width, 0, height)
glMatrixMode(GL_MODELVIEW)
Run Code Online (Sandbox Code Playgroud)

和stage.set3DMode函数:

glEnable(GL_DEPTH_TEST) 
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(60.0, float(width)/float(height), .1, 10000.)
glMatrixMode(GL_MODELVIEW)
Run Code Online (Sandbox Code Playgroud)

我真的希望有人可以指出我的错误!谢谢你帮助我:)

python opengl pyglet

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

如何隐藏 Devexpress GridLookUpEdit 的列标题?

我目前有一个 DevExpress GridControl,其中一列在 ColumnEdit 下分配了 GridLookUpEdit。然而,当我运行时,会显示一个列名称(显示成员)。

我知道使用 LookUpEdit 您可以将列标题设置为不可见,lookupedit.Properties.ShowHeader = False但我不知道如何使其对于 GridLookUpEdit 不可见。

vb.net devexpress visual-studio

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