Questions tagged «sorting»

此挑战旨在通过排序,排序或以其他方式组织一些数据集来解决。

17
对数组进行异化
从概念上讲,这一挑战非常简单。您会得到一个非负整数列表。如果可能,找到一个非负整数,以便对由组成的列表进行排序。如果不存在这样的输出,那么输出应该是不能被误认为是有效值的任何东西,例如负数,什么都没有,错误等。aiNbi = ai XOR NNN 这是一个例子: [4, 7, 6, 1, 0, 3] 如果我们采用此列表中的每个元素XOR 5,则得到 [1, 2, 3, 4, 5, 6] 排序。(请注意,结果列表不必具有唯一的元素且不包含空格。如果这样的操作的结果[0, 1, 1, 3]仍然是有效的。)另一方面,列表 [4, 7, 1, 6, 0, 3] 没有这样的N存在。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入可以是任何方便的列表或字符串格式。您可以假设小于个,并且列表包含至少一个元素。ai231 您的代码必须在几秒钟内处理任何测试用例(尤其是四个大型用例)。 适用标准代码高尔夫球规则。 测试用例 对于每个不返回的测试用例,-1都有无限数量的正确答案。这里列出的是最小的一个。通过额外设置在输入中所有整数上都相同的位(尤其是那些比列表中最大数目中的最高有效位大的位)来设置其他解决方案。 [4 7 6 1 0 3] => 5 [4 7 1 6 0 …

20
排序列表并写一些英语!
您的老板设法阅读了隐藏的秘密信息。但是,他最终并没有解雇您,只是让您担任秘书,并禁止您编写代码。 但是你是一个程序员。您需要编写代码。您必须编码。 因此,您的代码需要看起来与英语尽可能相似,有意义,并且看起来与代码尽可能少。您的代码应采用整数列表(在函数或STDIN中),并返回排序后的列表(将其返回或STDOUT)。 可以使用任何语言,但是我正在寻找最具创意的解决方案(如果您的代码看起来像是商务信函,则表示敬意)。 这是一次人气比赛!

30
实现Thanos排序算法
排序算法如下所示: 当列表未排序时,捕捉所有项目的一半(将其从列表中删除)。继续,直到列表已排序或仅剩余一项(默认情况下已排序)。这种分类算法可能会根据实现方式给出不同的结果。 物品清除程序由实施决定,但是经过一遍物品清除程序后,清单的长度应为以前的一半。您的算法可能决定删除列表的前半部分或列表,后半部分,所有奇数项,所有偶数项,一次删除一次,直到列表的长度减半,或者未提及任何内容。 输入列表可以包含任意数量的项目(在某种程度上,我们可以说最多1000个项目),而不仅仅是2 ^ n个项目的完全可分割的列表。如果列表是奇数(硬编码或在运行时随机决定),则必须删除(n + 1)/ 2或(n-1)/ 2个项目。自己决定:如果宇宙中包含奇异数量的生物,Thanos会做什么? 如果没有任何项目小于任何先前的项目,则对列表进行排序。输入中可能会出现重复,输出中可能会出现重复。 您的程序应接收一个整数数组(通过stdin或作为参数,可以是单个项目或一个数组参数),然后返回已排序的数组(或将其打印到stdout)。 例子: // A sorted list remains sorted [1, 2, 3, 4, 5] -> [1, 2, 3, 4, 5] // A list with duplicates may keep duplicates in the result [1, 2, 3, 4, 3] -> [1, 3, 3] …

28
垂直折叠文字
说我有这样的文本(每个单词一行,没有空格) Programming Puzzles & Code Golf 这是没有意义的!它完全违背了物理定律。 您的挑战是要纠正这种不可能的情况并像这样折叠文本: P Prog &uzz Coderam Golflesming 因此,在任何字符下方都没有空白,但是字符保持了垂直顺序。 目的是满足要求,但使用尽可能少的源代码字节。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

23
竞赛:排序大量高斯分布数据的最快方法
跟随对此问题的兴趣,我认为通过提出比赛来使答案更加客观和量化会很有趣。 这个想法很简单:我生成了一个二进制文件,其中包含5000万个高斯分布的双精度(平均:0,stdev 1)。目标是制作一个程序,以便尽可能快地对它们进行排序。python中一个非常简单的参考实现需要1m4s的时间来完成。我们能走多低? 规则如下:用一个程序打开文件“ gaussian.dat”并对内存中的数字进行排序(无需输出),并提供有关构建和运行该程序的说明。该程序必须能够在我的Arch Linux机器上运行(这意味着您可以使用可以在此系统上轻松安装的任何编程语言或库)。 该程序必须具有合理的可读性,以便我可以确保它可以安全启动(请不要使用仅汇编程序的解决方案!)。 我将在我的机器(四核,4 GB RAM)上运行答案。最快的解决方案将获得公认的答案和100分的赏金:) 该程序用于生成数字: #!/usr/bin/env python import random from array import array from sys import argv count=int(argv[1]) a=array('d',(random.gauss(0,1) for x in xrange(count))) f=open("gaussian.dat","wb") a.tofile(f) 简单的参考实现: #!/usr/bin/env python from array import array from sys import argv count=int(argv[1]) a=array('d') a.fromfile(open("gaussian.dat"),count) print "sorting..." b=sorted(a) 编辑:仅4 GB的RAM,对不起 …

30
有损排序(实施Dropsort)
由David Morgan-Mar设计的Dropsort是线性时间“排序算法”的一个示例,该算法可以生成实际上是已排序但仅包含某些原始元素的列表。任何不小于其最大元素数量的元素都将从列表中删除并丢弃。 在此任务中,将为您提供一个整数列表作为输入(STDIN或函数参数,要求您至少支持8位有符号整数的范围。)您的任务是对它们进行dropsort,然后将剩余的元素输出到订购。 您可以假定列表为非空。 这是代码高尔夫,所以最短的程序会获胜。 测试用例 Input Output 1 2 5 4 3 7 1 2 5 7 10 -1 12 10 12 -7 -8 -5 0 -1 1 -7 -5 0 1 9 8 7 6 5 9 10 13 17 21 10 13 17 21 10 10 10 …

18
镇上有两个新的警长-识别DJMcMego对!
我们在城镇Mego和DJMcMayhem中有一些新的警长主持人。我们需要挑战以适当地尊重他们的新职位,所以我们走了。 将悬停在他们的个人资料上时,引起了我的注意-他们的用户ID为和。如果执行数位减法,您会发现一些令人兴奋的事情(当然,要考虑绝对差值):45941317163171631716459414594145941 3|1|7|1|6 4|5|9|4|1 -+-+-+-+- (-) 1|4|2|3|5 上述算法生成的数字为。此整数有一些特殊之处:它仅包含连续的数字,并以升序排列,但是恰好其中一个数字未正确放置。142351423514235444 如果数字绝对差是按升序排序的连续整数,但我们将其中的一个正整数称为DJMcMego对,则它们中的一个不属于它。即,可以将逐位减法的结果的确切一位移动到另一位置,使得所获得的整数仅具有以升序排序的连续数字。(a ,b )(a,b)(a, b) 在上面的示例中,该对是DJMcMego对,因为如果在和之间移动,则结果为,这满足条件。请注意,结果数字的数字不必以开头,它们应该是连续的。当一个人不确定应该做出什么决定时,他们总是可以依靠另一个人的帮助来解决问题。4 3 5 12345 1(31716 ,45941 )(31716,45941)(31716, 45941)4443335551234512345123451个11 您的任务是根据输入的正整数对是否为DJMcMego对来输出真实/虚假值。 您可以确保和的位数相同,始终至少为4。b一种aabbb 您可以采用任何合理格式的整数(即本机整数,字符串,数字列表等)。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 测试用例 a, b -> Output 31716, 45941 -> Truthy 12354, 11111 -> Truthy 56798, 22222 -> Truthy 23564, 11111 -> Truthy 1759, 2435 -> Truthy 12345, …

16
实施“懒惰排序”
我应该对数字列表进行排序,但是我很懒。很难弄清楚如何交换所有数字,直到所有数字都按升序排列,所以我想出了自己的算法来保证新列表的排序。运作方式如下: 对于大小为N的列表,我们需要N-1次迭代。在每次迭代中 检查第N个数字是否小于第N + 1个数字。如果是,则这两个数字已经排序,因此我们可以跳过此迭代。 如果不是,那么您需要连续递减前N个数字,直到这两个数字顺序正确为止。 让我们举一个具体的例子。假设输入是 10 5 7 6 1 在第一个迭代中,我们将比较10和5。10大于5,因此我们将其递减直到更小: 4 5 7 6 1 现在我们比较5和7。5小于7,因此在此迭代中无需执行任何操作。因此,我们转到下一个并比较7和6。7大于6,因此我们递减前三个数字,直到小于6,我们得到: 2 3 5 6 1 现在我们比较6和1。同样,6大于1,因此我们将前四个数字减1,直到小于1,我们得到: -4 -3 -1 0 1 我们完成了!现在,我们的列表已按完美排序。而且,为了使事情变得更好,我们只需要遍历列表N-1次,因此该算法以O(N-1)时间对列表进行排序,我敢肯定,这是最快的算法。² 今天的挑战是实现这种惰性排序。您的程序或函数将获得任意喜欢的标准格式的整数数组,并且您必须执行此惰性排序并返回新的“已排序”列表。数组永远不会为空或包含非整数。 这里有些例子: Input: 10 5 7 6 1 Output: -4 -3 -1 0 1 Input: 3 2 1 Output: …

25
对数组进行重排序
挑战 给定一个非空的整数数组,例如: [5, 2, 7, 6, 4, 1, 3] 首先将其切断成没有任何项目大于前一个的数组(即非升序数组): [5, 2] [7, 6, 4, 1] [3] 接下来,反转每个数组: [2, 5] [1, 4, 6, 7] [3] 最后,将它们全部串联在一起: [2, 5, 1, 4, 6, 7, 3] 这应该是程序输出/函数返回的结果。重复此过程足够的时间,数组将被完全排序。 规则 输入和输出可以通过任何标准方法给出,并且可以采用任何合理的数组格式。 输入数组永远不会为空,但可能包含负数和/或重复项。 每个整数的绝对值将始终小于2 31。 测试用例 希望这些能够涵盖所有边缘情况: [1] -> [1] [1, 1] -> [1, 1] [1, …

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

25
像热一样将其排序
如这个问题所述: 由David Morgan-Mar设计的Dropsort是线性时间“排序算法”的一个示例,该算法可以生成一个列表,该列表实际上是经过排序的,但仅包含一些原始元素。任何不小于其最大元素数量的元素都将从列表中删除并丢弃。 要使用他们的测试用例之一,请输入{1, 2, 5, 4, 3, 7}yields {1, 2, 5, 7}as 4和as ,3因为它们小于先前的“ sorted”值5。 我们不想“排序”算法,我们希望它们成为真正的交易。因此,我希望您编写一个程序,给定一个数字列表,该程序输出一个DropSorted列表列表(作为完整的排序算法,我们需要合并这些列表,但是 之前已经完成了合并两个排序列表的操作,并且要求您再次执行此操作几乎是在问两个问题,因此,这个问题专门是我们完整的DropSort的“拆分”步骤。 但是,清单的安排和内容至关重要。程序的输出必须等同于DropSort的输出,然后是丢弃值的DropSort的输出,依此类推,直到只有一个排序链列表为止。同样,借用现有的测试套件(并添加另外两个): Input -> Output {1, 2, 5, 4, 3, 7} -> {{1, 2, 5, 7}, {4}, {3}} {10, -1, 12} -> {{10, 12}, {-1}} {-7, -8, -5, 0, -1, 1} -> {{-7, …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.