TL; DR
- 連続する要素の各ペアの記録(左から右)/長さ。それらが0または負の場合は、記録しないでください。
- これが完了したら、これらのアクションを実行します。商を更新しない:
- (0、.3)の右インクリメントと左デクリメント
- > =。3の配列から削除
- > .5の両方の要素を印刷する
- 残りの配列を出力します。実行された残りのセパレーターを用意します。
さて、挑戦へ…
これは、GLORIOUS LINEAR TIMEが最悪の場合のソートアルゴリズムであり、そのINFINITE WISDOMに敢えて反対する人は、彼らのHEINOUS CRIME OF HIGH TREASONに対して即座に実行されます。
FEARLESSリーダーはであなたを任務としている立派MISSION整数の配列を取り込み、以下のソートアルゴリズムを使用して、それをソートするプログラムや関数を書きます:
- で各要素を啓発あなたの配列を反復処理、GLORIOUS彼らの存在FEARLESSリーダー。
- あなたの持っている秘密警察の彼らはであることを確認するために、2つの連続する要素のすべてのペアのチェックをTHEIR NATIONを適切にLOYAL。正しく並べられていない場合は、配列の長さで割った数値の差を記録します。これは彼らの反対の商です。
- GLORIOUS TOURの最後に、リストを確認し、次のようにすべての反逆者に対してRAIN FEARLESS LEADER'S DIVINE PUNISHMENTを実行します。
- .3未満の反対の商の場合、彼らは単に無限大の恐怖の指導者の思い出を
洗脳する必要があります。左の要素を減らし、右の要素を増やします。異議のある商を変更しないでください。 - 反対の商である.3-.5(両端を含む)の場合、それらはTRAITORSであり、PRISON CAMPSに送信する必要があります。それらをアレイから削除します。
- .5より大きい反対の商の場合、それらはODIOUS REBEL SCUMです。彼らは、彼らが同盟していたかもしれない他のいかなる反逆の強欲の例として、公に実行されるべきです。それらを配列から削除し、全国のニュースソースであるThe STDOUT Timesに送信します。
- .3未満の反対の商の場合、彼らは単に無限大の恐怖の指導者の思い出を
- これで、配列が完全かつ完全にソートされました。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は、重複を避けるために書き直したいという私の動機でした。