小编Sla*_*ast的帖子

firefox源代码查看器中的"Stray doctype"错误

由于我学会了以XML格式提供XHTML页面,我开始注意到一些奇怪的事情:每当我在Firefox源代码查看器中查看XHTML页面时,DOCTYPE 总是被标记为错误.根据我从鼠标上面得到的工具提示,有问题的错误是"流浪的doctype".根据我的理解,"流浪的doctype"意味着在文档的中间有一个额外的DOCTYPE,它不属于这种情况,这肯定不是这里的情况.

这是一个示例 - 此标记将通过验证,并在所有现代浏览器中正确显示:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--FF source viewer will mark the preceding two lines as an error.-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <meta http-equiv="content-type"
      content="application/xhtml+xml; charset=utf-8" />
    <title>Sample XHTML Page</title>
  </head>
  <body>
    <p>This is an example.</p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

考虑到这些页面完美地通过验证,并且单个解析错误通常会破坏页面,此错误消息尤其奇怪.

xhtml firefox doctype

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

Quichesort的好处

我为一个赋值创建了这个程序,我们需要在它中创建一个Quichesort实现.这是一种混合排序算法,它使用Quicksort直到达到某个递归深度(log2(N),其中N是列表的长度),然后切换到Heapsort,以避免超过最大递归深度.

在测试我的实现时,我发现虽然它通常比常规Quicksort表现更好,但Heapsort一直表现优于两者.任何人都可以解释为什么Heapsort表现更好,在什么情况下Quichesort会比Quicksort Heapsort 更好?

请注意,由于某种原因,赋值将算法称为"Quipsort".

编辑:很显然,"Quichesort"其实等同于 内省排序.

我还注意到我的medianOf3()函数中的逻辑错误导致它为某些输入返回错误的值.这是该功能的改进版本:

def medianOf3(lst):
    """
    From a lst of unordered data, find and return the the median value from
    the first, middle and last values.
    """

    first, last = lst[0], lst[-1]
    if len(lst) <= 2:
        return min(first, last)
    middle = lst[(len(lst) - 1) // 2]
    return sorted((first, middle, last))[1]
Run Code Online (Sandbox Code Playgroud)

这会解释算法的性能相对较差吗?

Quichesort代码:

import heapSort             # heapSort
import math                 # log2 (for quicksort depth limit)

def medianOf3(lst):
    """ …
Run Code Online (Sandbox Code Playgroud)

python sorting quicksort heapsort

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

标签 统计

doctype ×1

firefox ×1

heapsort ×1

python ×1

quicksort ×1

sorting ×1

xhtml ×1