Sort an integer array: Difference between revisions

Content deleted Content added
PureFox (talk | contribs)
m →‎{{header|Wren}}: Minor tidy
Miks1965 (talk | contribs)
PascalABC.NET
 
(3 intermediate revisions by 2 users not shown)
Line 966:
=={{header|E}}==
<syntaxhighlight lang="e">[2,4,3,1,2].sort()</syntaxhighlight>
 
=={{header|EasyLang}}==
<syntaxhighlight>
proc sort . d[] .
for i = 1 to len d[] - 1
for j = i + 1 to len d[]
if d[j] < d[i]
swap d[j] d[i]
.
.
.
.
a[] = [ 2 4 3 1 2 ]
sort a[]
print a[]
</syntaxhighlight>
{{out}}
<pre>
[ 1 2 2 3 4 ]
</pre>
 
=={{header|Ed}}==
 
Input numbers as comma/space/tab/newline separated integers.
 
Given that ed doesn't support numbers, this example first converts numbers to unary system and compares the lengths of the converted numbers for sorting. Sorting happens in 8 iterations, which is a totally arbitrary number, yet sufficient to sort 5 example values. Should be copy-pasted more (there are no loops in ed) for bigger samples.
 
<syntaxhighlight>
H
# split comma/space/tab separated values
g/\b[[:space:]]*[,[:space:]][[:space:]]*\b/s//\
/g
# unary -> decimal (via Roman-ish)
g/(.*)0([0-9]{3})/s//\1\2/
g/(.*)1([0-9]{3})/s//\1m\2/
g/(.*)2([0-9]{3})/s//\1mm\2/
g/(.*)3([0-9]{3})/s//\1mmm\2/
g/(.*)4([0-9]{3})/s//\1mmmm\2/
g/(.*)5([0-9]{3})/s//\1mmmmm\2/
g/(.*)6([0-9]{3})/s//\1mmmmmm\2/
g/(.*)7([0-9]{3})/s//\1mmmmmmm\2/
g/(.*)8([0-9]{3})/s//\1mmmmmmmm\2/
g/(.*)9([0-9]{3})/s//\1mmmmmmmmm\2/
g/(.*)0([0-9]{2})/s//\1\2/
g/(.*)1([0-9]{2})/s//\1c\2/
g/(.*)2([0-9]{2})/s//\1cc\2/
g/(.*)3([0-9]{2})/s//\1ccc\2/
g/(.*)4([0-9]{2})/s//\1cccc\2/
g/(.*)5([0-9]{2})/s//\1ccccc\2/
g/(.*)6([0-9]{2})/s//\1cccccc\2/
g/(.*)7([0-9]{2})/s//\1ccccccc\2/
g/(.*)8([0-9]{2})/s//\1cccccccc\2/
g/(.*)9([0-9]{2})/s//\1ccccccccc\2/
g/(.*)0([0-9])/s//\1\2/
g/(.*)1([0-9])/s//\1x\2/
g/(.*)2([0-9])/s//\1xx\2/
g/(.*)3([0-9])/s//\1xxx\2/
g/(.*)4([0-9])/s//\1xxxx\2/
g/(.*)5([0-9])/s//\1xxxxx\2/
g/(.*)6([0-9])/s//\1xxxxxx\2/
g/(.*)7([0-9])/s//\1xxxxxxx\2/
g/(.*)8([0-9])/s//\1xxxxxxxx\2/
g/(.*)9([0-9])/s//\1xxxxxxxxx\2/
g/(.*)0/s//\1/
g/(.*)1/s//\1i/
g/(.*)2/s//\1ii/
g/(.*)3/s//\1iii/
g/(.*)4/s//\1iiii/
g/(.*)5/s//\1iiiii/
g/(.*)6/s//\1iiiiii/
g/(.*)7/s//\1iiiiiii/
g/(.*)8/s//\1iiiiiiii/
g/(.*)9/s//\1iiiiiiiii/
g/m/s//iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii/g
g/c/s//iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii/g
g/x/s//iiiiiiiiii/g
# actual logic
g/.*/s// &/
,j
g/^[ ]/s///
s/\b((i+)i+)[ ]\2\b/\2 \1/g
s//\2 \1/g
s//\2 \1/g
s//\2 \1/g
s//\2 \1/g
s//\2 \1/g
s//\2 \1/g
s//\2 \1/g
s/[ ]/\
/g
g/^$/d
# unary -> decimal (for 0-10000 range)
g/i{9000}(i{0,999})/s//9\1/
g/i{8000}(i{0,999})/s//8\1/
g/i{7000}(i{0,999})/s//7\1/
g/i{6000}(i{0,999})/s//6\1/
g/i{5000}(i{0,999})/s//5\1/
g/i{4000}(i{0,999})/s//4\1/
g/i{3000}(i{0,999})/s//3\1/
g/i{2000}(i{0,999})/s//2\1/
g/i{1000}(i{0,999})/s//1\1/
v/^[0-9]i*$/s/.*/0&/
g/i{900}(i{0,99})/s//9\1/
g/i{800}(i{0,99})/s//8\1/
g/i{700}(i{0,99})/s//7\1/
g/i{600}(i{0,99})/s//6\1/
g/i{500}(i{0,99})/s//5\1/
g/i{400}(i{0,99})/s//4\1/
g/i{300}(i{0,99})/s//3\1/
g/i{200}(i{0,99})/s//2\1/
g/i{100}(i{0,99})/s//1\1/
v/^[0-9]{2}i*$/s/^([0-9])(i*)$/\10\2/
g/i{90}(i{0,9})/s//9\1/
g/i{80}(i{0,9})/s//8\1/
g/i{70}(i{0,9})/s//7\1/
g/i{60}(i{0,9})/s//6\1/
g/i{50}(i{0,9})/s//5\1/
g/i{40}(i{0,9})/s//4\1/
g/i{30}(i{0,9})/s//3\1/
g/i{20}(i{0,9})/s//2\1/
g/i{10}(i{0,9})/s//1\1/
v/^[0-9]{3}i*$/s/^([0-9]{2})(i*)$/\10\2/
g/i{9}/s//9/
g/i{8}/s//8/
g/i{7}/s//7/
g/i{6}/s//6/
g/i{5}/s//5/
g/i{4}/s//4/
g/i{3}/s//3/
g/i{2}/s//2/
g/i{1}/s//1/
v/^[0-9]{4}i*$/s/^([0-9]{3})(i*)$/\10\2/
g/0+([0-9])/s//\1/
,p
Q
</syntaxhighlight>
 
=={{header|EGL}}==
Line 1,968 ⟶ 2,104:
=={{header|PARI/GP}}==
<syntaxhighlight lang="parigp">vecsort(v)</syntaxhighlight>
 
=={{header|PascalABC.NET}}==
<syntaxhighlight lang="delphi">
##
var a := Arr(5,1,4,2,3);
Sort(a);
Print(a);
</syntaxhighlight>
{{out}}
<pre>
[1,2,3,4,5]
</pre>
 
=={{header|Peloton}}==