Це такий виклик, який байти


32

Мені потрібно перестати думати про казкові імена

Ваше завдання - створити якомога більше фрагментів (програм із вбудованим входом і виходом), функцій або повноцінних програм, які б сортували будь-яку версію цілочисленних масивів вашої мови у порядку зростання, але для кожної програми вам дозволяється лише використовувати символи ASCII (або кодову сторінку вашої мови, якщо вона безпосередньо вказана як не ASCII), які не використовувалися в попередніх програмах.

Це приклад відповіді (окремі програми, розділені новими рядками):

Derp
ASdFGHJKLAAA
qwEEERtyRty

У цьому (вигаданому мовою), мій перший відповідь Derp, що витрачений D, e, rі p. У другій програмі мені заборонено використовувати ці символи знову, але я можу використовувати повторно стільки символів, котрі я хочу. Те саме з третьою програмою тощо.

Кожна програма повинна приймати масив цілих чисел, тобто щось подібне (див. Приклади вводу / виводу для дійсних стилів введення / виводу):

[3 4 -2 5 7 196 -44 -2]

І він повинен виводити елементи в масиві як масив, у порядку зростання:

[-44 -2 -2 3 4 5 7 196]

Ваш бал становитиме загальну кількість заявок. Якщо є нічия, виграє найменший байт (найменша кількість байтів у вашому коді)!

Правила програм:

  • Усі матеріали повинні працювати правильно в одній мовній версії (так Python 2 != Python 3).
  • Ваші матеріали можуть бути фрагментами, функціями або повноцінними програмами. Вам навіть дозволено змішувати та співставляти їх, однак, ви повинні сказати, що є, і надати посилання на робочі матеріали.
  • Будь ласка, надайте онлайн-посилання на всі рішення, якщо це можливо.
  • Усі подані матеріали повинні мати масив (або рядок, обмежений будь-яким символом) як вхідний, і виводити масив, відсортований (у формі масиву вашої мови або у вигляді {any character}рядка з обмеженням).
  • Вам заборонено використовувати будь-які символи за межами ASCII (або кодової сторінки вашої мови).

Наприклад, це дійсні входи / виходи:

[1 2 3 4]    (Clojure style arrays)
[1, 2, 3, 4] (Python style arrays)
1 2 3 4 5    (Space-delimited - separated by spaces)
1#2#3#4#5    ("#"-delimited - separated by "#" characters)
1\n2\n3\n4\n (newline-delimited)

Характеристики для введення:

  • Вам гарантовано, що масив містить лише цілі числа. Однак можуть бути негативні числа, і цифри можуть повторюватися нескінченно.

13
Чим більше каламбурів, тим краще!

5
Ви усвідомлюєте, що кожен, кому можна потурбувати вирішити це в Brainfuck, отримує рішення Lenguage з оцінкою 128? Як варіант, одне рішення Glypho могло набрати 42.
Мартін Ендер

1
@ Qwerp-Derp Можливо, трохи нудно, але, безумовно, виконано. Насправді я очікую, що введення-вивід є найбільш дратує частину (якщо ви не дозволяєте читати введення як список кодних символів).
Мартін Ендер

1
@WheatWizard Я нарахував лише 128 доступних символів, оскільки виклик визначає ASCII.
Мартін Ендер

2
У мене є 3 проблеми з обмеженням мови. (1) Обмеження довільних класів мов через те, що їм було б добре під час виклику, не є цікавим. (2) Більшість "звичайних" мов програмування, як JavaScript (на які вже є відповідь), не відповідають вимогам, що, звичайно, не є наміри обмеження, і ще раз, не весело. (3) Я не думаю, що це дійсно спостережувана вимога. "Конкретна функція" не дуже помітна, я можу стверджувати через кілька шарів абстракції, що символи Glypho дійсно мають специфічні функції, які працюють на наборі прихованих змінних.
Пшеничний майстер

Відповіді:


15

Желе , 10 програм, 65 байт

Ṣ
¹Þ
Ụị
Œ!Ṃ
7778Ọv
Ẋ>2\S$¿
ĠFḣṪ¥@€
~Ṁ~rṀxLœ&
C»/ð+ÆNPÆfÆC_ḷ
<þḅ1‘WiþJḄ³ṫZḢ

Існує неминуче перекриття відповіді @ Lynn's Jelly . Кредити на ідею Богоссорта йдуть їй.

Спробуйте в Інтернеті! або перевірити унікальність .

Як вони працюють

Ṣ               Main link. Argument: A (array)

Ṣ               Sort A.
¹Þ              Main link. Argument: A (array)

¹Þ              Sort A, using the identity function as the key.
Ụị              Main link. Argument: A (array)

Ụ               Grade up; yield all indices of A, sorted by their corr. values.
 ị              Index into A.
Œ!Ṃ             Main link. Argument: A (array)

Œ!              Yield all permutations of A.
  Ṃ             Minimum; yield the lexicographically smallest permutation.
7778Ọv          Main link. Argument: A (array)

7778Ọ           Unordinal; yield chr(7778) = 'Ṣ'.
     v          Evaluate with argument A.
Ẋ>2\S$¿         Main link. Argument: A (array)

      ¿         While the condition it truthy, execute the body.
 >2\S$            Condition:
     $              Combine the two links to the left into a monadic chain.
 >2\                  Perform pairwise greater-than comparison.
    S                 Sum; add the results.
                    This returns 0 iff A contains an unsorted pair of integers.
Ẋ                 Body: Shuffle A.
ĠFḣṪ¥@€         Main link. Argument: A (array)

Ġ               Group the indices of A by their sorted values.
 F              Flatten the result.
      €         Apply the link to the left to each index in the previous result, 
                calling it with the index as left argument and A as the right one.
    ¥@            Combine the two links to the left into a dyadic chain and swap
                  its arguments, so A is left one and the index i is the right one.
  ḣ               Head; take the first i elements of A.
   Ṫ              Tail; yield the last of the first i, i.e., the i-th element of A.
~Ṁ~rṀxLœ&       Main link. Argument: A (array)

~               Take the bitwise NOT of all integers in A.
 Ṁ              Take the maximum.
  ~             Take the bitwise NOT of the maximum, yielding the minimum of A.
    Ṁ           Yield the maximum of A.
   r            Range; yield [min(A), ... max(A)].
      L         Yield the length of A.
     x          Repeat each integer in the range len(A) times.
       œ&       Take the multiset-intersection of the result and A.
C»/ð+ÆNPÆfÆC_ḷ  Main link. Argument: A (array)

C               Complement; map (x -> 1-x) over A.
 »/             Reduce by dyadic maximum, yielding 1-min(A).
   ð            Begin a new, dyadic chain. Arguments: 1-min(A), A
    +           Add 1-min(A) to all elements of A, making them strictly positive.
     ÆN         For each element n of the result, yield the n-th prime number.
       P        Take the product.
        Æf      Factorize the product into prime numbers, with repetition.
          ÆC    Prime count; count the number of primes less than or equal to p,
                for each prime p in the resulting factorization.
             ḷ  Yield the left argument, 1-min(A).
            _   Subtract 1-min(A) from each prime count in the result to the left.
<þḅ1‘WiþJḄ³ṫZḢ  Main link. Argument: A (array)

<þ              Construct the less-than matrix of all pairs of elements in A.
  ḅ1            Convert each row from base 1 to integer (sum each).
    ‘           Increment. The integer at index i now counts how many elements
                of A are less than or equal to the i-th.
     W          Wrap the resulting 1D array into an array.
        J       Yield the indices of A, i.e., [1, ..., len(A)].
      iþ        Construct the index table; for each array T in the singleton array
                to the left and index j to the right, find the index of j in T.
                This yields an array of singleton arrays.
         Ḅ      Unbinary; convert each singleton from base 2 to integer, mapping
                ([x]-> x) over the array.
          ³     Yield A.
           ṫ    Tail; for each integer i in the result of `Ḅ`, create a copy of A
                without its first i-1 elements.
            Z   Zip/transpose. The first column becomes the first row.
             Ḣ  Head; yield the first row.

15

Желе, 8 програм

Ṣ                   Built-in sort.
¹Þ                  Sort-by the identity function.
Ụị                  Sort indices by values, then index into list.
Œ!Ṃ                 Smallest permutation.
7778Ọv              Eval Unicode 7778 (Ṣ).
ẊI>@-.S$$¿          Bogosort.
<;0œṡ0⁸ṁjµ/         Insertion sort.
AṀ‘¶+Ç©ṬT_©®³ċЀ®x' A terrifying hack.

Остання програма насправді дратує ...

AṀ‘¶+Ç©               Add ® = abs(max(L)) + 1 to the entire list.
                      Now it’s offset to be entirely positive.
       Ṭ              Create a binary array with 1s at these indices.
        T             Find the indices of 1s in this array.
                      The result is sorted, but offset wrong, and lacks duplicates.
         _©®          Subtract the offset, saving this list to ®.
                      Now restore the duplicates:
            ³ċЀ      Count occurences in the original list.
                ®x'   Repeat the elements of ® that many times.

Якщо я можу видалити œṡз <;0œṡ0⁸ṁjµ/, є також це дивно один: ²SNr²ZFœ&. Допомога цінується.


1
Roots → polynomial, polynomial → rootsгеній!
Луїс Мендо

1
Здається, порядок виведення зворотний . На щастя Uбезкоштовно
Луїс Мендо

Фу, від'ємні цілі числа ... Я побачу, що я можу зробити щодо них
Лінн

Я думаю, нам потрібно трохи більше, але я не знаю, як ми могли б це покращити.
Меттью Рох

@ETHproductions Виправлено зараз.
Лінн

14

05AB1E , оцінка = 6

05AB1E використовує кодування CP-1252 .

Дякую Кевіну Крейсейну за програму 4.
Дякую Райлі за натхнення до програми 6.

Програма 1

{               # sort          

Спробуйте в Інтернеті!

Програма 2

`[Ž.^]¯

`               # flatten input list to stack
 [Ž  ]          # loop until stack is empty
   .^           # add top of stack to global list in sorted order
      ¯         # push global list

Спробуйте в Інтернеті!

Програма 3

WrZŠŠŸvy†

Wr              # get minimum value in input list and reverse stack
  ZŠ            # get maximum value in input list and swap move it to bottom of stack
    Š           # move input down 2 levels of the stack
     Ÿ          # create a range from max to min
      v         # for each y in range
       y†       # move any occurrence of it in the input list to the front

Спробуйте в Інтернеті!

Програма 4

ϧ

œ               # get a list of all permutations of input
 ß              # pop the smallest

Спробуйте в Інтернеті!

Програма 5

êDgFDNè¹sUXQOFXs}}\)

ê                      # sort with duplicates removed
 Dg                    # duplicate and get length
   F                   # for N in [0 ... len-1] do
    DNè                # duplicate and get the Nth element in the unique list
       ¹s              # push input and move the Nth element to top of stack
         UX            # save it in X
           Q           # compare each element in the list against the Nth unique element
            O          # sum
             FXs}      # that many times, push X and swap it down 1 level on stack
                 }     # end outer loop
                  \    # remove the left over list of unique items
                   )   # wrap stack in a list

Спробуйте в Інтернеті!

Програма 6

©€Ý逤þ((®€Ý逤(þ(Rì

©                        # store a copy of input in register
 €Ý                      # map range[0 ... n] over list
   é                     # sort by length
    €¤                   # map get_last_element over list
      þ((                # keep only non-negative numbers
                         # now we have all positive numbers sorted
         ®€Ý逤(þ(       # do the same thing again on input 
                         # except now we only keep negative numbers
                  R      # reverse sorting for negative numbers
                   ì     # prepend the sorted negative numbers to the positive ones

Спробуйте в Інтернеті!


œßМоже використовуватися для додаткової оцінки. Спробуйте тут.
Kevin Cruijssen

@KevinCruijssen: Дякую! Я просто розглядав œрішення, але про це навіть не знав ß:)
Емінька

Буду абсолютно чесною, я це отримав звідси . ;)
Кевін Круїссен

1
@Riley Якщо я щось не так роблю, це дає неправильний результат
Кевін Круїйсен

1
Чи є спосіб отримати хвіст і попс? €Ý逤працював би, якщо ¤замість цього вискакує значення, якби просто отримувати його.
Райлі

11

Брахілог , оцінка =  4  5

Програма 1 - Сортування тарілок

ṣ.↔: 1≥₎∧ | ↰

Ми перетасовуємо та перевіряємо, чи не змінюється зворотний бік списку. Якщо ні, то ми повторюємося рекурсивно.

Програма 2 - Сортування перестановок

p≤₁

Виведіть першу перестановку, яка не зменшується.

Програма 3 - Вбудований

о

Замовлення.

Програма 4 - Вбудований

≜ᵒ

Порядок шляхом маркування. Оскільки цілі числа у списку вже зафіксовані, це робить те саме, що і o.

Програма 5 - Мінімальна друк

g ~ kKt ~ lg ~ kK {⌋M & ~ cṪ↺Th [M] hẉTb↺c} ⁱ⁾

Ось пояснення цієї жахливості Природи:

g~kK                                K = [Input list, a variable]
    t~lg~kK                         That variable is the length of the Input list
           {                  }ⁱ⁾   Iterate length-of-the-Input times on the Input:
            ⌋M                        M is the min of the input
              &~cṪ                    Ṫ is a triplet of lists which concatenate to the input
                 Ṫ↺Th[M]              T is Ṫ cyclically permuted once ccw; [M] is
                                        the first element of T
                        hẉ            Write M followed by a new line
                          Tb↺c        Remove the first element of T (i.e. [M]), cyclically
                                        pemute T once ccw and concatenate; this is
                                        the input for the next iteration

3
Закреслено 4, як і раніше, регулярно 4 :(
NoOneIsHere

2
@NoOneIsHere я обдурив і продовжив лінію, щоб обійти це!
Фаталізувати

Хвостова рекурсія + Богоссорт. Схоже на рецепт f-RecursionError: maximum call stack size exceeded
Esolanging Fruit

@ Challenger5 Хвост рекурсії реалізований досить добре в Prolog, щоб цього не сталося.
Фаталізувати

7

JavaScript, оцінка 1 2

Подвоїв рахунок завдяки @ETHproductions, який нагадав мені про втечі рядків

Фрагмент 1 (21 байт, символи \ ,-.=>289`Facehilnorstux)

Function`return this.sort\x28\x28t,h\x29=>t-h\x29`.call

Фрагмент 2 (9117 байт, символи (+)[!])

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+(![]+[])[+!+[]]+[[]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]([[]])+[]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]()[+!+[]+[+!+[]]]+([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[!+[]+!+[]]+(![]+[])[+!+[]]+(+((+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+[+[]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+!+[]]])+[])[!+[]+!+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]

Ви можете протестувати обидві версії на консолі браузера. Перша версія - це лише функція, друга версія - фрагмент, який потребує додавання круглих дужок та аргументів.

Приклади

< {function snippet here}([1, -44, 65, -105, 12])
> [-105, -44, 1, 12, 65]

Як?

Перший фрагмент викликає метод сортування в масиві, який ви його передаєте. За замовчуванням метод сортування сортує лексикографічний, що погано для цілих чисел (особливо багатоцифрових від’ємних чисел). Як такий, ми мусимо передати йому зворотний виклик у вигляді функції стрілки, яка бере два елементи і віднімає останній від першого. Залежно від отриманого значення, два елементи переставляють: якщо воно менше 0, aто з’явиться раніше b, якщо воно більше 0, aз’явиться після b, а якщо воно дорівнює 0, обидва елементи закінчуватимуться поруч.

Другий фрагмент - це не що інше, як закодована версія першого фрагмента, і він використовує той факт, що в JavaScript object.function()дорівнює object["function"](). Він також використовує порожні масиви, !оператори та кастинг чисел для створення всіх видів рядків, в яких можна знайти потрібні символи для імені функції. Потім дужки знову використовуються для отримання символу в певному індексі в рядку, і всі ці символи з'єднуються, в результаті чого виникає такий код JavaScript:

[]["fill"]["constructor"]("return this.sort((a,b)=>a-b)")["call"]

[]["fill"]одно [].fill, чий ["constructor"]це Functionоб'єкт. Потім ми називаємо це рядком (який повинен бути оцінений при виклику функції), що є першою функцією, але зауважимо, що аргумент було замінено на this. Щоб встановити значення thisаргументу, нам потрібно викликати функцію цієї функції, а саме ["call"]. У звичайному JavaScript ви б написали це як:

function _() {
    return this.sort((a,b)=>a-b);
}
_.call(argument);

Надіюсь, що рішення можна отримати без дужок, замість цього використовуючи зворотні посилання. Function`return a=>a.sort\x28\x28a,b\x29=>a-b\x29` наприклад, але без використання знаків, які ви вже використовували
ETHproductions

Це не важливо, але ви, ймовірно, можете зберегти значну кількість байтів у другому фрагменті, ввівши 'і зробивши, наприклад, '('замість того, що JSF генерує цю таблицю. (також використовуйте fі tяк vars замість aі b, bбуквально коштує близько 3000 символів)
ETHproductions

7

V , оцінка 3 , 4

Це було справді весело виклик! На щастя, vim має вбудовану функцію "сортування", інакше це було б неможливо. На жаль, оскільки він / Vim є строковим, йому потрібен аргумент для сортування за числовими значеннями. Тому я дзвоню

  • Сортувати за числовим значенням n,

  • Сортувати за шістнадцятковим значенням xта

  • Сортувати за значенням з плаваючою комою f

Маленька бічна примітка: Коли я пишу щось подібне <esc>або <C-r>, це фактично однобайтовий. Він представляє символи, що не друкуються, і оскільки V, на жаль, сильно покладається на недруковані символи, цей спосіб робить все простіше. Посилання TIO мають -vпрапор, завдяки чому інтерпретатор V читає їх так, ніби вони символи, які вони представляють.

Програма 1, 2 байти

ún

Спробуйте в Інтернеті!

Це викликає функцію V сортування .

Програма 2, 10 байт

Qsor x
vi

Це просто викликає "сортування" безпосередньо. Єдине, що цікаво в цьому, це те, що ми робимо це з exрежиму, який є дивним режимом, який імітує текстовий редактор "колишній", прапрадід V. vi- це ярлик для visualкоманди, яка використовується для виходу з колишнього режиму. Для цього потрібна нова лінія.

Спробуйте в Інтернеті!

Програма 3, 14 байт

OSOR X<esc>V~DJ:<C-r>"

Спробуйте в Інтернеті!

Добре, ось де пояснення починають ставати трохи дивними. Якщо ми можемо створити текст sor x, ми можемо його видалити і вставити в поточну команду за допомогою <C-r><register-name>. Тож ми введемо його у верхній регістр.

O                       " Open a newline above the current line, and enter insert mode
 SOR X                  " From insert mode, enter 'SOR X'
      <esc>             " Leave insert mode
           V            " Select this whole line
            ~           " And toggle the case of every selected character ('u' would also work here)
             D          " Delete this line (into register '"')
              J         " Get rid of a newline
               :        " Enter command-line mode
                <C-r>"  " Insert register '"'
                        " Implicitly hit enter, running the 'sor x' command
                        " Implicitly print the buffer

Програма 4, 19 байт

YPC<C-v>58fbe a<C-c>g?_dd@1

Спробуйте в Інтернеті!

І ось де пояснення починають ставати дуже дивними. Як і минулого разу, ми побудуємо команду в звичайному режимі, щоб ми могли використовувати різні клавіші.

YP                          " Create a copy of this line up one line. This is mostly so that we have a line to work with without messing with the numbers.
  C                         " Delete this line and enter insert mode
   <C-v>58                  " Insert ASCII '58' (which is ':')
          fbe a             " Insert 'fbe a'
               <C-c>        " Pretty much equivalent to <esc>
                    g?_     " ROT13 this line. Now the line is ':sor n'
                       dd   " Delete this whole line
                         @1 " And run it as if typed

6

CJam, оцінка 4

Програма 1: Вбудований

$

Програма 2: Вбудований Eval'ed

36c~

36 - значення ASCII $.

Програма 3: Сортування перестановки

e!0=

e!     e# Find unique permutations of the input
  0=   e# Take the first one, which happens to be in sorted order

Програма 4: Мінімальні цінності

[{__)\;\{_@_@<{\}&;}*^{1m<}{)\}?}h;]

Пояснення цієї неземної жахливості:

[             e# Begin working in an array
{             e# Do this block while the TOS is truthy (doesn't pop)
 __           e#  Duplicate TOS twice (the array)
 )\;          e#  Take the last element of the array
 \            e#  Swap top two elements, bringing the other array copy to the top
 {            e#  Reduce the array using this block
  _@_@<{\}&;  e#   The minimum of two values (e was already used, so can't use e<)
 }*           e#  (result is the minimum value from the array)
 ^            e#  Bitwise XOR of last element with minimum element;
              e#   if the numbers are the same, result is 0, otherwise non-zero
 {            e#  If non-zero (i.e. last element wasn't the minimum element)
  1m<         e#   Rotate the array 1 to the left
 }{           e#  Else
  )\          e#   Remove the last element and bring the array back to TOS
 }?           e#  (end if)
}h            e# (end do-while)
;             e# Remove the empty array left behind
]             e# End the array

Не знаєте, наскільки це корисно, але ви можете використовувати (+замість цього, 1m<якщо хочете.
Мартін Ендер

@MartinEnder Я вже використовую <цей фрагмент, тому, мабуть, краще дотримуватися1m<
Business Cat

Хоча я не впевнений, що мені все-таки вдасться робити без використання блоків ...
Business Cat

5

Яп , оцінка = 4

Програма 1

n

Спробуйте в Інтернеті!

Програма 2

ñ

Спробуйте в Інтернеті!

Програма 3

s)$.sort((a,b)=>a-b

Спробуйте в Інтернеті!

Програма 4

Ov85d +110d

Спробуйте в Інтернеті!


1
Хороший. Я думаю, що ви можете зберегти U в третій програмі, виконавши s)$.sort(..., не впевнений, чи це корисно, хоча.
ETHproductions

@ETHproductions Спасибі Я не дуже впевнений, чи зможу я все-таки зробити набагато більше; не може Eval більше Japt або JS , тому що Oі $були використані. Я відкритий для пропозицій, якщо ви можете придумати будь-який інший спосіб сортування! :)
Том

4

Октава, 2 бали

Важко конкурувати з езолангами, але ось що:

Я вражений, якщо хтось це б’є. uniqueможна використовувати для сортування значень, але це викреслить дублікати. Для того, щоб вставити дублікати, вам знадобляться круглі дужки, і вони широко використовуються у сортуванні бульбашок. Вам також знадобиться @, яке також використовується.

Номер 1:

Цей досить простий: Створіть анонімну функцію, призначену змінній ans.

@sort

Назвіть це наступним чином: ans([-5, 3, 0, -2, 100]). Він не працює на tio, але працює на октаві в Інтернеті .


Номер 2:

Це просто реалізація сортування бульбашок, без використання символів @sort. Ми не можемо зробити цю функцію через o, і ми не можемо використовувати її inputчерез t. Тому ми застрягли eval.

eval(['a=inpu',116,'("");']);i=1;k=0;
while~k,k=1;i=1;while i<numel(a),if a(i)>a(i+1),a([i+1,i]) = a([i,i+1]);k=0;
end,i++;end,end,a

eval(['a=inpu',116,'("");']);оцінює:, a=input("");що ми можемо використовувати для введення нашого вхідного вектора. Решта - сортування бульбашок без використання forабо mod. Зауважте, що це потрібно зберегти у сценарії та викликати з GUI / CLI. Ви не можете скопіювати його та вставити через input("")(він використовуватиме решту коду як вхід, таким чином, вийде з ладу).


4

Haskell (лямбдабот), 3 функції

sort


vv v|vvv:vvvv<-v=vv vvvv|v==v=v
vvvv==:vvv|vvvv==vv vvvv=vvv:vvvv|v:vv<-vvvv,vvv<v=vvv:v:vv|v:vv<-vvvv=v:vv==:vvv
vv=:vvvv|v:vvv<-vvvv=vv==:v=:vvv
vv=:v=vv
v vvv=vv vvv=:vvv


fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

Я використовую середовище lambdabot, щоб уникнути безлічі importтверджень. Навіть sortпотреби import Data.List. lambdabot імпортує купу модулів за замовчуванням. Крім відсутнього imports, це стандартний код Haskell за нашими правилами.

Спробуйте в Інтернеті! .

Функція 1

sort

Функція бібліотеки від Data.List. Тут нічого не можна сказати.

Функція 2

vv v|vvv:vvvv<-v=vv vvvv|v==v=v
vvvv==:vvv|vvvv==vv vvvv=vvv:vvvv|v:vv<-vvvv,vvv<v=vvv:v:vv|v:vv<-vvvv=v:vv==:vvv
vv=:vvvv|v:vvv<-vvvv=vv==:v=:vvv
vv=:v=vv
v vvv=vv vvv=:vvv

Функція vреалізує вставку-сортування.

Я використовую захисні шаблони, щоб уникати ()параметрів. Порівняйте vv v|vvv:vvvv<-v=...з vv(vvv:vvvv)=....

Перший рядок, функція vv- це допоміжна функція для створення порожнього списку. З його допомогою мені не доведеться []писати буквально порожні списки. Більше читати:

mkEmpty list | hd:tl <- list = mkEmpty tl | otherwise = list

(==:)є вставка, яка вставляє елемент у відсортований список, так що отриманий список все ще сортується. Більш зрозумілі:

list `insert` el
  | list == []           = el:list
  | hd:tl <- list, el<hd = el:hd:tl
  | hd:tl <- list        = hd : tl `insert` el

(=:)це зменшити. Більш зрозумілі:

acc `reduce` list
  | hd:tl <- list = (acc `insert` hd) `reduce` tl
acc `reduce` list = acc

І, нарешті, vщо зменшує список вхідних даних, на якому позначено []:

sort list = [] `reduce` list

Функція 3

fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

sortвід функції 1 робить більшість зі списку-прогулянкових функцій ( fold, scan, until) немає. Необхідність проведення рекурсії, =яка використовується у функції 2. Єдиний варіант, що залишився - це використання комбінатора точок фіксації fix. Я почав з

fix (\f x -> min x ([minimum x]++f(x\\[minimum x])))

що є сортуванням відбору. Якщо перетворити його на точкове (я не можу використовувати лямбда \f x ->..., через -що використовується гурадами візерунка у Функції 2):

fix (ap min . ap ((++) . return . minimum) . (. ap (\\) (return . minimum)))

Створення одиночних списків зі значенням returnзаборонено (те саме для pure), тому я повинен будувати свою власну функцію: \x -> map (\y -> x+0*y) [1]або без точки flip map[1].(.(0*)).(+). Заміна returnврожайності

fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

2

MATL , 3 програми

Програма 1

S

Для цього просто використовується вбудована функція з неявним введенням та відображенням.

Спробуйте це у мережі MATL .

Програма 2

`GGnZrd0<a}3M

Це продовжує генерувати випадкові перестановки входів, поки всі послідовні відмінності результату не будуть негативними (це богосорт , як зазначає @cz ). Хронометраж не є детермінованим і його середнім зростає дуже швидко з розміром вхідного сигналу (а саме, 𝒪 ( п! ) Для розмірно п масив з усіма записами різними).

Спробуйте в MATL Online .

Програма 3

t:"tt_X>_=&)]&h

Це цикл, який обчислює мінімум масиву, видаляє всі елементи, що дорівнюють цьому значенню, та продовжує роботу з рештою. Це робиться стільки разів, скільки вводиться розмір. Якщо не всі записи на вході різні, деякі ітерації будуть марними (але нешкідливими), оскільки масив вже буде випорожнено.

Спробуйте це у мережі MATL .


1
Приємного бічного мислення!
Грег Мартін

Це бого-сорт?
c ..

@cz googles bogo-sort Справді! TIL
Луїс Мендо

1

Піп , 4 програми

Програма 1 - вбудований

Знімок; припускає список в x.

SNx

( SNдля сортування числових)

Програма 2 - перестановка фільтра

Знімок; припускає список в y. Дуже повільно для введення даних довше, ніж приблизно 7 елементів.

Y$<=_FIPMyPOy

       PMy     List of permutations of y
     FI        Filter on this lambda function:
 $<=_           Fold on less-than-or-equal
                (gives 1 if the permutation is sorted ascending, 0 otherwise)
Y              Yank that result back into y
               Filter returned a list of (one or more) permutations, so we need to
          POy  Pop the first one

Програма 3 - eval

Знімок; припускає список в z.

V J C[83 78 122]

    C[83 78 122]  Apply chr to each number; yields ["S" "N" "z"]
  J               Join that list into a string
V                 Eval

Програма 4 - MergeSort

Анонімна функція; виклик зі списком як аргумент (наприклад, ({...} [1 2])або f:{...} (f [1 2]).

{b:#a>o?(fa@(,#a/2))lc:#a>o?(fa@(#a/2,()))aa:lWb{Wb@0>c@0|b@0Qc@0{aAE:c@0c@>:o}t:bb:cc:t}aALc}

Безголівки:

{
 ; If more than one element in a, b gets result of recursion with first half
 ; else b gets l (empty list)
 b: #a>o ? (f a@(,#a/2)) l
 ; If more than one element in a, c gets result of recursion with second half
 ; else c gets a
 c: #a>o ? (f a@(#a/2,())) a
 ; Now we merge b and c
 ; We'll put the results in a, which must be initialized to l (empty list)
 a:l
 ; Loop while b is nonempty
 W b {
  ; Loop while 0th element of c exists and is less than or equal to 0th element
  ; of b (note: Q is string equality)
  W b@0>c@0 | b@0Qc@0 {
   ; Append 0th element of c to a
   a AE: c@0
   ; Slice c from 1st element on and assign that back to c (removing 0th)
   c @>: o
  }
  ; Swap b and c
  t:b
  b:c
  c:t
 }
 ; When b is empty, we only need append the rest of c to a and return
 aALc
}

1

PowerShell , 2

|sort

Спробуйте в Інтернеті!

Це фрагмент, який працює в (наприклад) еквіваленті PowerShell у вигляді REPL. Посилання TIO показує використання. sortЄ псевдонімом для Sort-Objectкомандлет.


PARAM($A)[ARRAY]::SORT($A);$A

Спробуйте в Інтернеті!

Команди PowerShell не залежать від регістру, тому ми можемо використовувати як sortдля одного, так і SORTдля іншого. Це займає вхідний масив, сортує його на місці, а потім виводить його.


1

Рубі, 2 програми

Спочатку - прямо:

->t{t.sort}

Друга - хитра частина:

def w(g)
    eval ""<<103<<46<<115<<111<<114<<116
end

0

J

Програма перша: 3 байти

/:~

як у /:~ 3,1,2,1вихідних1 1 2 3

Спробуйте в Інтернеті!

ПРИМІТКА в J, негативним числам передує _ не - тому ви можете спробувати 4, _10,56, _333 і т.д.

Програма друга: 5 байт

|.\:~

Я зафіксував вашу відповідь, щоб код відображався належним чином. Гарна відповідь! Крім того , Try it onlineпредмет посилання на веб - сторінки на TIO, щоб зв'язати сторінку у відповідь ви можете зробити це: [displayed text](link).
клісмік

Спасибі! Тільки починаючи так, щоб повільно повісити його! Подумайте, зараз це виглядає краще. Вашу допомогу високо оцінили. Річард
Річард Донован

Програми, які ви пишете, можуть не мати жодних символів; як є, :і ~зустрічаються в обох.
Лінн

0

PHP 7, 2 програми

Обидві програми можна більше пограти в гольф.

Програма 1, 254 байти, символи ! "$&+.01:;=>?[]adeginoprtv

$a=$argv;0 .$a[1+1]?$i=$n=$d=0:print$a[1]and die;g:$r=0 .$a[++$i+1];$i=!$r?1:$i;$n=!$r?$n+1:$n;$v=$i+1;$d=$v>$d?$v:$d;$n>$d?print$a[$d]and die:0;$e=$d>$n&&$a[$i]>$a[$v];$t=$a[$i];$a[$i]=$e?$a[$v]:$a[$i];$a[$v]=$e?$t:$a[$v];$n==$d?print"$a[$i] ":0;goto g;

Сорт бульбашки. Використовується gotoдля створення циклу, як цього вимагають вбудовані петлі ().

Програма 2, 155 байт, символів #%'(),-67ACEFINORTUYZ^_{|}~

IF(CREATE_FUNCTION('','NEFTIEZIENAECCERCTZIENA~N~UEEFECTZIENAUERTEF~CFACTY~YRZIENAUE'^')))6()~(7)7~6-677|~(7)7%~#|~6)77|~(7)7|~77-)^))(-|~^~~~(7)7|~')()){}

IF(...){}уникає використання ;. Основний код кодується XOR, тому $що він уже використовувався в попередній програмі. Кодекс:

global$argv;unset($argv[0]);sort($argv);echo join(' ',$argv);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.