暴君ソートの実装[終了]


8

TL; DR

  • 連続する要素の各ペアの記録(左から右)/長さ。それらが0または負の場合は、記録しないでください。
  • これが完了したら、これらのアクションを実行します。商を更新しない:
    • (0、.3)の右インクリメントと左デクリメント
    • > =。3の配列から削除
    • > .5の両方の要素を印刷する
  • 残りの配列を出力します。実行された残りのセパレーターを用意します。

さて、挑戦へ…

これは、GLORIOUS LINEAR TIMEが最悪の場合のソートアルゴリズムであり、そのINFINITE WISDOMに敢えて反対するは、彼らのHEINOUS CRIME OF HIGH TREASONに対して即座に実行されます。

FEARLESSリーダーはであなたを任務としている立派MISSION整数の配列を取り込み、以下のソートアルゴリズムを使用して、それをソートするプログラムや関数を書きます:

  1. で各要素を啓発あなたの配列を反復処理、GLORIOUS彼らの存在FEARLESSリーダー
  2. あなたの持っている秘密警察の彼らはであることを確認するために、2つの連続する要素のすべてのペアのチェックをTHEIR NATIONを適切にLOYAL。正しく並べられていない場合は、配列の長さで割った数値の差を記録します。これは彼らの反対の商です。
  3. GLORIOUS TOURの最後に、リストを確認し、次のようにすべての反逆者に対してRAIN FEARLESS LEADER'S DIVINE PUNISHMENTを実行します。
    • .3未満の反対の商の場合、彼らは単に無限大の恐怖の指導者の思い出を洗脳する必要があります。左の要素を減らし、右の要素を増やします。異議のある商を変更しないでください。
    • 反対の商である.3-.5(両端を含む)の場合、それらはTRAITORSであり、PRISON CAMPSに送信する必要があります。それらをアレイから削除します。
    • .5より大きい反対の商の場合、それらはODIOUS REBEL SCUMです。彼らは、彼らが同盟していたかもしれない他のいかなる反逆の強欲の例として、公に実行されるべきです。それらを配列から削除し、全国のニュースソースであるThe STDOUT Timesに送信します。
  4. これで、配列が完全かつ完全にソートされました。STDOUT Timesに送信して、GLOIOUS VICTORYを歌ってもらいます。

MANDATORY VIEWINGすぎている人にFOOLISH理解しINFINITE GLORYこのアルゴリズムのを、次の配列をソートするために使用されます。

[1,8,6,0,4,9,3,5,7,2]
  • 1と8は正しく注文されています。
  • 8と6は正しい順序ではないため、両方に.2の反対の商が記録されます。
  • 6と0は反対者の別のペアです。この反対の商は.6です。
  • 0と4は正しく順序付けされています。
  • 4と9は正しく注文されています。
  • 9と3は.6の反対の商を持っています。
  • 3と5は正しく注文されています。
  • 5と7は正しく注文されています。
  • 7と2には、0.5の反対の商があります。

したがって、FEARLESS LEADERの名前で次のアクションを実行します。

  • 8から7に減らし、6から7に増やします。
  • 0と新しい7を削除し、それらを実行します。
  • 9と3を続けます。
  • 元の7と2を再教育キャンプに運び、それらを削除します。

これは、STDOUTまたは便利なもので行われるプレスリリースである必要があります。

Executions: 7, 0, 9, 3
[1, 7, 4, 5]

ご覧のとおり、結果の配列はCOMPLETELY AND FOREVER SORTEDです。ソートされていないことを示唆しようとすることは、大反逆を構成します。

さて、としてGLORIOUSデモンストレーション果てしない資源によって与えられたFEARLESSのリーダー、彼は彼をご提供しているINFINITE WISDOMテストケースを生成するには:

import random

len=random.randint(2,20)
arr=list(range(len))
random.shuffle(arr)
print(arr)

dissent=[(arr[i]-arr[i+1])/len for i in range(len-1)]
dissent.append(0) # Barrier between front and back of the array.
executions=[]
for i in range(len-1):
    if dissent[i] > 0:
        if dissent[i] < 0.3:
            arr[i] -= 1
            arr[i+1] += 1
        elif dissent[i] > 0.5:
            if dissent[i-1] <= 0.5:
                executions.append(arr[i])
            executions.append(arr[i+1])

print([arr[i] for i in range(len) if dissent[i] < 0.3 and dissent[i-1] < 0.3])
print(executions)

オンラインで試してください -使用するには実行ボタンを押してください。そうしないと、最後の人が手に入れたものを取得するだけです。

凝視しやすいように、FEARLESS LEADERはエッジケースの例も提供しています。

Input                  Output
3,2,1,4,4,1,2,3,4,5    2,2,2,4,2,3,4,5

(この例では実行はありません。)

最後に、プログラムのバイトを主要なサポーターとして扱い、それらを最小化する必要があります。バイト単位の最短プログラムは、ETERNAL FAVOR OF THE FEARLESS LEADERを獲得します。

それが原因であるクレジット

このコンセプトは、レイジードロップソートに触発され、使用された書体は主に精神的な独裁者からのものでした。これのパロディ面を楽しんだら、ぜひ行ってみてください。

追加のクレジットは早い段階でサンドボックスでこれに投票したすべての人に割り当てられます。達成された+8は、重複を避けるために書き直したいという私の動機でした。


コメントは詳細な議論のためのものではありません。この会話はチャットに移動しました
Mego

これは地獄の多くの改修が必要です。何をすべきかについてより多く、ストーリーについてはより少なく。どう思いますか ?
ムハンマドサルマン

@MuhammadSalmanこれが初めてクローズされたときと同じように、私は要約に何が欠けているのか本当に知りたいです。
Nissa

@StephenLeppik:要約には何も欠けていません(私はかなり確信しています)が、私が言ったように、ストーリーが少なくなり、何をする必要があるかについての事実が事実に近づきます。少なくともそれが私がそれを保留にするために投票した理由です。他の人には異なる理由があるかもしれません。
ムハンマドサルマン

興味深いアイデアの+1。-1は、トップライティングスタイルでは不要です。面白い話は、私はそれらのファンではありませんが、チャレンジを損なうものでなくても大丈夫ですが、私は何も見落とさないように(例を含めて)チャレンジを3回読み直さなければなりませんでした。また、tl; drでは、左<右、反対= 0の場合、ポイントがありません。さらに、右が左よりも小さい場合は常に負になるため、右マイナス左ではなく、左マイナス右を意味していると確信しています。 。
PunPun1000

回答:


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