タグ付けされた質問 「sorting」

この課題は、並べ替え、順序付け、またはその他の方法でデータセットを整理することによって解決することを目的としています。

25
文字列を並べ替え、
文字列を並べ替えると、通常は次のようになります。 ':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy はい、それがソートされた最初の文でした。 あなたが見ることができるように、繰り返される文字が多い、aa、eee、ttttt、9つのスペースなど。 128最初の複製のASCII値256、2番目、3843番目などにASCII値を追加し、再度並べ替えて新しい文字列(同じ文字を取得するためのモジュラス128)を出力すると、文字列が取得されます。 ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt (単一の先頭スペースと4つの末尾スペースに注意してください)。 文字列は"順ソート"され<space>':I....uy、<space>aeg....uy、<space>egi....ty、<space>iloty、<space>lt、<space>、<space>、<space>、<space>。 数字を含む文字列を使用すると、これを視覚化する方が簡単かもしれません。文字列111222334は「ソート」されたとき:になります123412312。 チャレンジ: 驚くことではありませんが、挑戦は上記の説明に従って文字列をソートするコードを書くことです。 入力文字列には、32〜126の範囲(チルダまでのスペース)の印刷可能なASCII文字のみが含まれると想定できます。 テストケース: **Test cases:** *:Tacest*es*s* If you sort a string you'll typically get something like: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt Hello, World! !,HWdelorlol #MATLAB, 114 bytes #,14ABLMTbesty 1A f=@(s)[mod(sort(cell2mat(cellfun(@(c)c+128*(0:nnz(c)-1),mat2cell(sort(s),1,histc(s,unique(s))),'un',0))),128),'']; '()*+,-0128:;=@[]acdefhilmnoqrstuz'(),0128@acefilmnorstu'(),12celmnostu'(),12celnstu(),clnst(),cls(),cs(),()()()() これはcode-golfなので、バイト単位でカウントされた各言語の最短コードがrefを獲得します。

28
超対数を計算する
これは簡単な課題です。 数を考えるとn >= 0、出力超対数(またはログ*、ログスターを、または対数を繰り返し、同等であるため、nこのような課題に対して負になることはありません。)のn。 これは、テトラションに対する2つの逆関数の1つです。もう1つはスーパールートです。これは関連する質問です。 例 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 ルール 可能ですが、小数をサポートする必要はありません。 少なくともの入力をサポートする必要があり3814280 = ceiling(e^e^e)ます。 のような値をハードコーディングすることはできません3814280。(あなたのプログラムは理論的にはより大きな数値をサポートしなければなりません。)アルゴリズムを実装したいです。 最短のコードが優先されます。 関連OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

30
賢い人のMira気楼
むかしむかし、Quoraでこの質問/回答を読んでいた FizzBu​​zzテストに合格できないコンピューターサイエンスの学位を持つプログラマーは本当にいますか このコードは明白な答えとして与えられます for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i もちろん、FizzBu​​zzは死ぬまでゴルフにかけられましたが、それはこの質問の目的ではありません。あなたはコメントで、4の倍数の印刷「ジャズ」などの追加条件を簡単に追加できるので、この明白な答えは素晴らしいと誰かが言及していることがわかります(同意しません。このスキームを拡張するにはO(2 ** n )コード行。) あなたの挑戦は、仲間によって判断されるようにFizzJazzBuzzの最も美しいバージョンを書くことです。 投票者が考慮すべき事項: ドライ 除算/モジュラス演算の効率 Quoraに関する回答の多くはPythonを使用していましたが、ここではそのような言語の制限はありません。 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

30
Bogosortを実装する
数独を解くのは難しいですか?でも、ブルートフォースバージョン?これは少し簡単なコーディング演習です。私は願います。:-P bogosortを実装する最短の関数を作成します。具体的には、関数は次のことを行う必要があります。 入力として配列(またはあなたの言語の同等物)を取る 要素が並べ替えられているかどうかを確認します。もしそうなら、配列を返します そうでない場合は、要素をシャッフルし、再度開始します 最短のエントリーが勝ちです。同点の場合、カスタムコンパレータ(および/または擬似乱数ジェネレータ)をサポートする関数が優先されます。残りの関係は、以前の提出を支持することによって解決されます。 明確化:もちろん、それらを注文する方法がある限り、任意の要素タイプを使用できます。また、シャッフルは均一でなければなりません。この「私はそれをクイックソートしてシャッフルしたと呼ぶ」ビジネスはありません。:-)

12
パンケーキの反転
でパンケーキソートのみ許可される操作をシーケンスの一部の接頭辞の要素を逆にすることです。または、パンケーキのスタックを考えます。スタックのどこかにヘラを挿入し、スパチュラの上にすべてのパンケーキをひっくり返します。 たとえば6 5 4 1 2 3、最初の6要素(シーケンス全体)を最初に反転し、中間結果を生成して3 2 1 4 5 6から最初の3要素を反転してに到達することにより、シーケンスをソートできます1 2 3 4 5 6。 操作が1つしかないため、ソートプロセス全体を整数のシーケンスで記述できます。各整数は、pr flipを含める要素/パンケーキの数です。上記の例では、ソート順序はになります6 3。 別の例:4 2 3 1でソートできます4 2 3 2。中間結果は次のとおりです。 4 2 3 1 flip 4: 1 3 2 4 flip 2: 3 1 2 4 flip 3: 2 1 3 4 flip …

30
同一番号の各シリーズをインプレースで列挙する
厳密に正の整数のリストが与えられた場合、各個別の番号を調べて、そのすべての出現を新しいシリーズの連続するインデックス(ゼロまたは1ベース)に置き換えます。 例 []→ []/[] [42]→ [0]/[1] [7,7,7]→ [0,1,2]/[1,2,3] [10,20,30]→ [0,0,0]/[1,1,1] [5,12,10,12,12,10]→ [0,0,0,1,2,1]/[1,1,1,2,3,2] [2,7,1,8,2,8,1,8,2,8]→ [0,0,0,0,1,1,1,2,2,3]/[1,1,1,1,2,2,2,3,3,4] [3,1,4,1,5,9,2,6,5,3,5,9]→ [0,0,0,1,0,0,0,0,1,1,2,1]/[1,1,1,2,1,1,1,1,2,2,3,2]

18
回転対称性のある数
整数、出力所与truthyのそれは同じ逆さまである場合、値または(180°回転)falsyそうでない場合、値を。 0、1、及び8回転対称性を持っています。6となり9、逆もまた同様です。 真実の結果を生み出す一連の数字:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

24
これをすばやく並べ替えます!
まあ... 並べ替えがタグ付けされた59(現在60)の質問がありますが、簡単なクイックソートはありません。 修正する必要があります。 クイックソートに不慣れな方のために、Wikipedia- 配列から、ピボットと呼ばれる要素を選択します。 ピボットより小さい値を持つすべての要素がピボットの前に来るように配列を並べ替え、ピボットより大きい値を持つすべての要素がその後に来るようにします(等しい値はどちらの方向にも進むことができます)。この分割後、ピボットは最終位置になります。これは、パーティション操作と呼ばれます。 上記の手順を、値の小さい要素のサブ配列に、値の大きい要素のサブ配列に個別に再帰的に適用します。 ルール ルールは簡単です: 選択したプログラミング言語で数値クイックソートを実装します。 ピボットは、ランダムに選択するか、中央値3(1番目、最後、および中間要素)で選択する必要があります。 プログラムは、完全なプログラムまたは機能になります。 STDIN、コマンドライン引数、または関数パラメーターを使用して入力を取得できます。文字列入力を使用する場合、入力はスペースで区切られます。 入力には、10進数と負の値が含まれる場合があります。ただし、重複はありません。 STDOUTに出力するか、関数から戻ることができます。 組み込みのソート(またはソート関連)機能や標準の抜け穴はありません。 リストの長さは任意です。 ボーナス1:長さ<= 5のリストまたはサブリストでは、挿入ソートを使用して少し速度を上げます。報酬:-15%。 ボーナス#2:言語が並行性をサポートしている場合、リストを並列に並べ替えます。サブリストで挿入ソートを使用している場合、最終的な挿入ソートは並列である必要はありません。組み込みのスレッドプール/スレッドスケジューリングが許可されます。報酬:-15%。 注:3人の中央値は一部の人々を混乱させていたので、ここに説明があります(再度)ウィキペディア: ピボットのパーティションの最初、中央、最後の要素の中央値を選択する 得点 これはcode-golfです。基本スコアはバイト単位です。ボーナスを1つ獲得した場合は、その数を15%引きます。両方入手した場合は、30%オフにしてください。それは本当に売り込みのように聞こえます。 これは、全体の最短回答を見つけることではなく、各言語で最短の回答を見つけることです。 そして今、リーダーボードスニペットの恥知らずなコピー。 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes Nは提出のサイズです。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = …

30
遅延ドロップソートを実装する
この課題は、すでにドロップソートについて説明しています。しかし、私はちょっと怠け者だと私は本当に私の唯一の配列は、もう少しソート以前よりもする必要があり、それはソートする必要はありませんすべての方法を。 ドロップソートでは、その前の要素よりも小さいすべての要素をドロップします。レイジードロップソートでは、厳密に先行する要素よりも小さい要素をすべて削除します。 以下に例を示します。次の配列を検討してください。 8 6 9 9 7 2 3 8 1 3 前の要素よりも小さい要素をすべてマークしましょう。 8 6 9 9 7 2 3 8 1 3 ^ ^ ^ ^ どちら3もマークされていないことに注意してください8。それらはすべて、左側の単一の要素よりも大きくなっています。 アルゴリズムを完了し、マークされた要素を削除すると、次のようになります。 8 9 9 3 8 3 それは基本的にもっとソートされているように見えます。ちょっと。私は怠け者。 あなたがすでに推論したかもしれないあなたの仕事は、このアルゴリズムを実装することです。 入力は1〜9の少なくとも1つの正の整数の配列であるため、数字のストリングも使用できます。 これはcode-golfで、最少バイトが勝ちます! 追加のテストケース: 1 1 1 2 3 1 2 3 5 …

29
リストを注文する
概要 整数のリストが与えられると、各整数がソートされたときに終わるインデックスを返します。 たとえば、リストがの場合、[0,8,-1,5,8]を返す必要があります[1,3,0,2,4]。2つ8のsは互いに相対的な順序を維持していることに注意してください(ソートは安定しています)。 別の言い方をすると、リスト内の各要素について、リスト内の要素の数を返します。選択した要素よりも小さいOR(選択した要素の前に要素ANDが表示される) インデックスは0(1ではなく)で開始する必要があります。編集:大きなプッシュバックがある場合、1ベースのインデックスを許可します。 テストケース: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

24
決められた配列の並べ替え
入力: 3つの整数を含む配列:0、1および2任意の順序(つまり[2, 0, 1]) そして、アルファベット文字(小文字と大文字の両方)と数字(つまりa1B2c3)のみを含む長さ2以上の文字列 出力: 配列に基づいて、文字列を並べ替えて出力します。 これはどのように作動しますか? アレイは、の順の優先順位を示しa-z、A-Zそして0-9、第一ビーイング0。第二の存在1; そして3番目の存在2。 文字列の個々の文字は、それに基づいて順序付けることができます。 例: アレイ: [2, 0, 1] 文字列: a1B2c3 配列に基づいて、順序の優先順位がであることがわかります0-9a-zA-Z。 それに基づいて、文字列を変換して出力できます123acB。 チャレンジルール: 配列には、0インデックス付き入力または1インデックス付き入力を使用するように選択できます。したがって、[3, 1, 2]1インデックス付き配列を使用する場合は、有効な入力でもあります。 文字列(入力と出力の両方)には有効な文字のみが含まれます:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。 お使いの言語がアレイ(またはあなたがすることを選択した場合)をサポートしていない場合は、最初のパラメータ(すなわちのための文字列の代わりに配列を使用するのは自由です012、[0,1,2]など)。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: [2, 0, 1] & a1B2c3 -> 123acB [2, 1, 0] & aAaA909UuHWw9gh2 -> 02999AAHUWaaghuw …

30
配列のドリフトソート
Driftsortは、配列を「ソート」する簡単な方法です。配列が並べ替えられるまで、または配列の並べ替えに失敗するまで、配列内の要素を「スライド」または「回転」させることで機能します。 2つの例を見てみましょう。まず、配列を考え[10, 2, 3, 4, 7]ます。配列はソートされていないため、一度回転させます。(これは、同じ方向のままである限り、どちらの方向でも発生する可能性があります。)次に、配列は次のようになります。 [7, 10, 2, 3, 4] これはソートされていないため、再度回転します。 [4, 7, 10, 2, 3] そしてまた: [3, 4, 7, 10, 2] そして最後の時間: [2, 3, 4, 7, 10] そして、それはソートされています!したがって、配列[10, 2, 3, 4, 7]はドリフトソート可能です。明確にするために、配列のすべての回転を次に示します。 [10, 2, 3, 4, 7] [7, 10, 2, 3, 4] [4, 7, 10, 2, 3] [3, …

30
数字のリストを並べ替える[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 コードボウリングについて: ゴルフでは、最低スコア(最小のアプリケーション、最もエレガントななど)を取得しようとします。ボウリングでは、最高のスコアを取得しようとします。したがって、コードボーリングチャレンジの目標は、チャレンジの要件を満たしたままで、最大で最もろくでなしの、最も困難なコードを維持することです。ただし、そのためだけにソースを長くする意味はありません。追加された長さは、パディングだけでなく、デザインによるものであるように見える必要があります。 チャレンジ: 数字のリストを昇順でソートするプログラムを作成します。 例: 入力: 1、4、7、2、5 出力: 1、2、4、5、7 コード: WTFがあまりないため、これは明らかに良い答えではありません。 function doSort(array $input) { sort($input); return $input; } ルール: 実際のルールはありません。プログラムが機能する限り、それを手に入れてください! 覚えておいてください:これはゴルフではなくコードボウリングです。目的は、できる限り最悪で最もろくでなしのコードを作成することです!見栄えは良いが、実際には一見邪悪なコードに対するボーナスポイント...

18
発音並べ替え™
さまざまな派手な並べ替えアルゴリズムを知っていますが、これらのどれも発音しやすい方法で数字を提供しません。これを改善するために、私は発音リストを並べ替える最も自然な方法である発音ソート™の使用を提案します。 発音 (このチャレンジで)数字を発音するための公式ルールは、数字が1つずつ発音され、結果の文字列が辞書式順序でソートされるということです。例として、これは番号845が発音されることを意味し、"eight four five"それに応じてソートする必要があります。 負の数 負の数は、単語の前に付けて発音し"minus"ます。したがって、-23と発音され"minus two three"ます。これにより、4(4)と9(9)で始まる数字の間の負の数が出力の途中で終わることに注意してください。 GuideSoとしての発音並べ順の公式の順序は次のとおりです。 8 五 四 マイナス 九 1 セブン 六 三 二 ゼロ あれは、 8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0 入力 範囲の整数のリストで、最大100個の要素が含まれます。文字列のリストとしての入力は許可されていません。ご使用の言語がリストとしての入力をサポートしていない場合、入力を個別の整数として許可することができます。[ - 999 、999 ][−999、999][-999, 999] 入力には、無効な数字や0で始まる数字(数字0自体を除く)は含まれません。通常、入力はソートされず、任意の順序で指定できます。 出力 同じ整数、発音Sort™順。数字は、ソートを取得するために発音に変換するだけであり、出力には文字列を含めないでください。 例 例では、中間のステップ(括弧で囲まれた)はガイドとしてのみ機能し、出力の一部ではありません。 [1, 2, 3] -> (['one', …

30
配列内で最も長い単語を見つける
あなたの課題は、文字列の配列を取得し、配列内の最も長い文字列を出力することです。だから ["tiny", "small", "bigger", "biggest"] 出力はになりますbiggest。 配列の2つの要素の長さが同じ場合、配列の最初に表示される要素を選択する必要があります。つまり、配列が次のようになっている場合です。 ["one", "two", "no"] 出力はoneですが、配列が次のようになっている場合: ["two", "one", "no"] 出力はtwoです。 これはcode-golfであるため、バイト単位の最短コードが優先されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.