Это своего рода вызов, который байты

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}строки с -delimited).
  • Вам не разрешается использовать любые символы за пределами 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)

Спецификации для ввода:

  • Вам гарантировано, что массив содержит только целые числа. Однако могут быть отрицательные числа, и числа могут повторяться бесконечно.
clismique
источник
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

Попробуйте онлайн!

Emigna
источник
œßМожет быть использован для дополнительной оценки. Попробуй это здесь.
Кевин Круйссен,
@KevinCruijssen: Спасибо! Я просто смотрел наœ решение, но я даже не знал о ß:)
Emigna
Я буду совершенно честен, я получил это отсюда . ;)
Кевин Круйссен
1
@Riley Если я не делаю что-то не так, это дает неправильный вывод
Кевин Круйссен
1
Есть ли способ получить хвост и поп? €Ý逤будет работать, если ¤вместо этого получит значение, если просто получит его.
Райли
11

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

Программа 1 - случайная сортировка

ṣ.↔: 1≥₎∧ | ↰

Мы перемешиваем и проверяем, что обратный список не увеличивается. Если нет, мы повторяем рекурсивно.

Программа 2 - сортировка перестановок

p≤₁

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

Программа 3 - Встроенная

о

Порядок.

Программа 4 - Встроенная

≜ᵒ

Заказ по маркировке. Поскольку целые числа в списке уже зафиксированы, это делает так же, какo .

Программа 5 - Мин. Печать

г ~ ККТ ~ ~ Л.Г. кК {⌋M & ~ cṪ↺Th [М] 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
Fatalize
источник
3
Вычеркнуто 4 все еще регулярно 4 :(
NoOneIsHere
2
@ NoOneIsHere Я обманул и расширил линию, чтобы обойти это!
Fatalize
Хвостовая рекурсия + богосорт. Похоже на рецепт f-RecursionError: maximum call stack size exceeded
Esolanging Fruit
@ Challenger5 Хвостовая рекурсия реализована в Прологе достаточно хорошо, чтобы этого не произошло.
Fatalize
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]

Как?

Первый фрагмент вызывает метод sort для массива, который вы передаете. По умолчанию метод сортировки сортирует лексикографически, что плохо для целых чисел (особенно многозначных отрицательных чисел). Таким образом, мы должны передать ему обратный вызов в виде функции стрелки, которая берет два элемента и вычитает последний из первого. В зависимости от полученного значения два элемента переставляются: если он меньше 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в качестве переменных вместо aи b, bбуквально стоит около 3000 символов)
ETHproductions
7

V , оценка 3 , 4

Это было действительно забавное испытание! К счастью, в vim есть встроенная функция сортировки, иначе это было бы невозможно. К сожалению, поскольку V / vim основаны на строках, для сортировки по числовым значениям необходим аргумент. Так я звоню

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

  • Сортировать по шестнадцатеричному значению xи

  • Сортировать по значению с плавающей точкой f

Небольшое примечание: когда я пишу что-то вроде <esc>или <C-r>, это фактически однобайтовый. Он представляет непечатаемые символы, и, к сожалению, V сильно зависит от непечатаемых символов, этот метод делает все проще. Ссылки TIO имеют -vфлаг, который заставляет интерпретатор V читать их, как если бы они были символами, которые они представляют.

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

ún

Попробуйте онлайн!

Это вызывает специфический V функцию сортировки

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

Qsor x
vi

Это просто вызывает «сортировку» напрямую. Единственная интересная вещь об этом - то, что мы делаем это из exрежима, который является странным режимом, который подражает текстовому редактору 'ex', прапрадеду V.viявляется ярлыком для visualкоманды, используемой для выхода из режима ex. Это требует завершающей новой строки.

Попробуйте онлайн!

Программа 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
DJMcMayhem
источник
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
5

Japt , оценка = 4

Программа 1

n

Попробуйте онлайн!

Программа 2

ñ

Попробуйте онлайн!

Программа 3

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

Попробуйте онлайн!

Программа 4

Ov85d +110d

Попробуйте онлайн!

Том
источник
1
Хороший. Я думаю, что вы можете сохранить U в третьей программе, выполнив s)$.sort(..., но не уверен, что это полезно.
ETHproductions
@ETHproductions Спасибо. Я не совсем уверен, смогу ли я сделать намного больше в любом случае; не может больше оценивать Japt или JS, потому что Oи $были использованы. Я открыт для предложений, если вы можете придумать какие-либо другие способы сортировки! :)
Том
4

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

Трудно конкурировать с esolangs, но здесь идет:

Я впечатлен, если кто-то победит это. 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 (lambdabot), 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)=....

Первая строка, function vv- это вспомогательная функция для создания пустого списка. С ним мне не нужно []писать буквальные пустые списки. Более читабельно:

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

(==:)is insert, которая вставляет элемент в отсортированный список, так что результирующий список все еще сортируется. Более читабельно:

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

Это продолжает генерировать случайные перестановки входных данных до тех пор, пока все последовательные различия результата не будут отрицательными (это bogosort , как отмечено @cz ). Время выполнения является недетерминированным, и его среднее значение очень быстро увеличивается с размером ввода (а именно, 𝒪 ( n! ) Для массива размера n со всеми различными записями).

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

Программа 3

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

Это цикл, который вычисляет минимум массива, удаляет все элементы, равные этому значению, и выполняет остальные операции. Это делается столько раз, сколько вводится размер. Если не все записи во входных данных различны, некоторые из итераций будут бесполезными (но безвредными), поскольку массив уже будет очищен.

Попробуйте это в MATL онлайн .

Луис Мендо
источник
1
Хорошее боковое мышление!
Грег Мартин
Это бого-сортировка?
с ..
@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}

Ungolfed:

{
 ; 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
}
DLosc
источник
1

PowerShell , 2

|sort

Попробуйте онлайн!

Это фрагмент, который работает (например) в PowerShell, как REPL. Ссылка TIO показывает использование. sortЯвляется псевдонимом для Sort-Objectкомандлета.


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

Попробуйте онлайн!

Команды PowerShell нечувствительны к регистру, поэтому мы можем использовать как sortдля одного, так и SORTдля другого. Это берет входной массив, сортирует его на месте, а затем выводит его.

AdmBorkBork
источник
1

Ruby, 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).
clismique
Благодарность! Просто начинаю, так медленно овладеваю этим! Думаю, теперь это выглядит лучше. Ваша помощь очень ценится. Ричард
Ричард Донован
Программы, которые вы пишете, могут не иметь общих символов; как есть, :и ~встречаются в обоих из них.
Линн
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);
user63956
источник