Sort an integer array: Difference between revisions

m
m (→‎{{header|Wren}}: Minor tidy)
 
(8 intermediate revisions by 7 users not shown)
Line 12:
{{trans|Python}}
 
<langsyntaxhighlight lang="11l">nums = [2,4,3,1,2]
nums.sort()</langsyntaxhighlight>
You could also use the built-in sorted() function:
<langsyntaxhighlight lang="11l">nums = sorted([2,4,3,1,2])</langsyntaxhighlight>
 
=={{header|4D}}==
===English===
 
<langsyntaxhighlight lang="4d">ARRAY INTEGER($nums;0)
APPEND TO ARRAY($nums;2)
APPEND TO ARRAY($nums;4)
Line 27:
APPEND TO ARRAY($nums;2)
SORT ARRAY($nums) ` sort in ascending order
SORT ARRAY($nums;<) ` sort in descending order</langsyntaxhighlight>
 
===Français===
 
<langsyntaxhighlight lang="4d">TABLEAU ENTIER($nombres;0)
AJOUTER A TABLEAU($nombres;2)
AJOUTER A TABLEAU($nombres;4)
Line 38:
AJOUTER A TABLEAU($nombres;2)
TRIER TABLEAU($nombres) ` pour effectuer un tri par ordre croissant
TRIER TABLEAU($nombres;<) ` pour effectuer un tri par ordre décroissant</langsyntaxhighlight>
 
=={{header|8th}}==
<langsyntaxhighlight lang="forth">
[ 10,2,100 ] ' n:cmp a:sort . cr
</syntaxhighlight>
</lang>
Output is: [2,10,100]
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program integerSort64.s with selection sort */
Line 213:
.include "../includeARM64.inc"
 
</syntaxhighlight>
</lang>
=={{header|Action!}}==
{{libheader|Action! Tool Kit}}
<langsyntaxhighlight Actionlang="action!">INCLUDE "D2:SORT.ACT" ;from the Action! Tool Kit
 
PROC PrintArray(INT ARRAY a INT size)
Line 255:
Test(c,8,ASCENDING)
Test(d,12,ASCENDING)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Sort_an_integer_array.png Screenshot from Atari 8-bit computer]
Line 281:
 
=={{header|ActionScript}}==
<langsyntaxhighlight ActionScriptlang="actionscript">//Comparison function must returns Numbers even though it deals with integers.
function compare(x:int, y:int):Number
{
Line 287:
}
var nums:Vector.<int> = Vector.<int>([5,12,3,612,31,523,1,234,2]);
nums.sort(compare);</langsyntaxhighlight>
 
=={{header|Ada}}==
{{works with|GNAT|GPL 2006}}
<langsyntaxhighlight lang="ada">with Gnat.Heap_Sort_G;
procedure Integer_Sort is
Line 333:
begin
Sort(Values);
end Integer_Sort;</langsyntaxhighlight>
 
=={{header|ALGOL 68}}==
Line 341:
{{works with|ALGOL 68G|Any - tested with release mk15-0.8b.fc9.i386}}
{{works with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release 1.8.8d.fc9.i386}}
<langsyntaxhighlight lang="algol68">CO PR READ "shell_sort.a68" PR CO
MODE TYPE = INT;
 
Line 364:
in place shell sort(LOC[LWB seq: UPB seq]TYPE:=seq);
 
print((shell sort((2, 4, 3, 1, 2)), new line))</langsyntaxhighlight>
Output:
<pre>
Line 372:
=={{header|ALGOL W}}==
Algol W doesn't have standard sorting facilities. This uses the Algol W quicksort sample in the Sorting Algorithms Quicksort task.
<langsyntaxhighlight lang="algolw">begin
% use the quicksort procedure from the Sorting_Algorithms/Quicksort task %
% Quicksorts in-place the array of integers v, from lb to ub - external %
Line 387:
for i := 1 until 5 do writeon( i_w := 1, s_w := 1, t( i ) )
end
end.</langsyntaxhighlight>
{{out}}
<pre>
Line 395:
=={{header|APL}}==
{{works with|APL2}}
<langsyntaxhighlight lang="apl"> X←63 92 51 92 39 15 43 89 36 69
X[⍋X]
15 36 39 43 51 63 69 89 92 92</langsyntaxhighlight>
 
=={{header|AppleScript}}==
Line 409:
for which AppleScript was presumably designed.
 
<langsyntaxhighlight AppleScriptlang="applescript">use framework "Foundation"
 
-- sort :: [a] -> [a]
Line 451:
end script
end if
end mReturn</langsyntaxhighlight>
{{Out}}
<pre>{{0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9},
Line 458:
=={{header|ARM Assembly}}==
{{works with|as|Raspberry Pi}}
<syntaxhighlight lang="arm assembly">
<lang ARM Assembly>
 
/* ARM assembly Raspberry PI */
Line 616:
/***************************************************/
.include "../affichage.inc"
</syntaxhighlight>
</lang>
=={{header|Arturo}}==
<langsyntaxhighlight lang="rebol">arr: [2 3 5 8 4 1 6 9 7]
sort 'arr ; in-place
loop arr => print</langsyntaxhighlight>
 
{{out}}
Line 637:
=={{header|AutoHotkey}}==
<langsyntaxhighlight AutoHotkeylang="autohotkey">numbers = 5 4 1 2 3
sort, numbers, N D%A_Space%
Msgbox % numbers</langsyntaxhighlight>
 
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f SORT_AN_INTEGER_ARRAY.AWK
BEGIN {
Line 658:
printf("\t%s\n",description)
}
</syntaxhighlight>
</lang>
<p>output:</p>
<pre>
Line 669:
There is no ascending sort function in Axe, but there is a descending sort function. One can either implement a custom ascending sorting function or simply reverse the output from SortD.
 
<langsyntaxhighlight lang="axe">2→{L₁}
4→{L₁+1}
3→{L₁+2}
Line 675:
2→{L₁+4}
 
SortD(L₁,5)</langsyntaxhighlight>
 
=={{header|Babel}}==
Line 681:
Use the sortval operator to sort an array of integers (val-array in Babel terminology). The following code creates a list of random values, converts it to a val-array, sorts that val-array, then converts it back to a list for display using the lsnum utility.
 
<langsyntaxhighlight lang="babel">babel> nil { zap {1 randlf 100 rem} 20 times collect ! } nest dup lsnum ! --> Create a list of random numbers
( 20 47 69 71 18 10 92 9 56 68 71 92 45 92 12 7 59 55 54 24 )
babel> ls2lf --> Convert list to array for sorting
babel> dup {fnord} merge_sort --> The internal sort operator
babel> ar2ls lsnum ! --> Display the results
( 7 9 10 12 18 20 24 45 47 54 55 56 59 68 69 71 71 92 92 92 )</langsyntaxhighlight>
 
In Babel, lists and arrays are distinct. If you want to sort a list, use the lssort utility:
 
<langsyntaxhighlight lang="babel">babel> ( 68 73 63 83 54 67 46 53 88 86 49 75 89 83 28 9 34 21 20 90 )
babel> {lt?} lssort ! lsnum !
( 9 20 21 28 34 46 49 53 54 63 67 68 73 75 83 83 86 88 89 90 )</langsyntaxhighlight>
 
To reverse the sort-order, use the 'gt?' predicate instead of the 'lt?' predicate:
 
<langsyntaxhighlight lang="babel">babel> ( 68 73 63 83 54 67 46 53 88 86 49 75 89 83 28 9 34 21 20 90 ) {gt?} lssort ! lsnum !
( 90 89 88 86 83 83 75 73 68 67 63 54 53 49 46 34 28 21 20 9 )</langsyntaxhighlight>
 
=={{header|BaCon}}==
<langsyntaxhighlight lang="freebasic">' Sort an integer array
DECLARE values[5] TYPE NUMBER
values[0] = 23
Line 713:
PRINT values[i], ", ";
NEXT
PRINT values[4]</langsyntaxhighlight>
 
{{out}}
Line 723:
{{works with|BBC BASIC for Windows}}
Uses the supplied SORTLIB library.
<langsyntaxhighlight lang="bbcbasic"> INSTALL @lib$+"SORTLIB"
sort% = FN_sortinit(0,0)
Line 735:
PRINT ; array(i%) ", ";
NEXT
PRINT ; array(i%)</langsyntaxhighlight>
Output:
<pre>
Line 742:
 
=={{header|Beads}}==
<langsyntaxhighlight Beadslang="beads">beads 1 program 'Sort an integer array'
calc main_init
var arr = [4, 1, 2, -1, 3, 0, 2]
var newarr : array of num
loop across:arr sort:val count:c val:v
newarr[c] = v</langsyntaxhighlight>
 
=={{header|Befunge}}==
{{works with|befungee}}
Elements of the array are read from standard input, preceded by their quantity. The algorithm uses counting sort and allows numbers between 1 and 60, inclusive.
<syntaxhighlight lang="befunge">v
<lang Befunge>v
> 543** > :#v_ $&> :#v_ 1 > :0g > :#v_ $ 1+: 543** `! #v_ 25*,@
^-1p0\0:< ^-1 p0\+1 g0:&< ^-1\.:\<
^ <</langsyntaxhighlight>
 
=={{header|BQN}}==
<syntaxhighlight lang="bqn">∧ [4, 1, 2, ¯9, ¯5, 3, 6, 9, ¯2]</syntaxhighlight>
{{out}}
<pre>⟨ ¯9 ¯5 ¯2 1 2 3 4 6 9 ⟩</pre>
 
=={{header|Bracmat}}==
Line 769 ⟶ 774:
{!} 21</pre>
To complete the task need to unfold the terms with a numerical factor >1:
<langsyntaxhighlight lang="bracmat">{sort takes a list of space-separated integers}
(sort=
sum elem sorted n
Line 785 ⟶ 790:
& !sorted);
out$sort$(9 -2 1 2 8 0 1 2);</langsyntaxhighlight>
{{out}}
Output:
<pre>-2 0 1 1 2 2 8 9</pre>
This solution becomes very ineffective for long lists. To add a single term to an already sorted sum of N terms requires on average N/2 steps. It is much more efficient to merge two already sorted sums of about equal length.
Line 792 ⟶ 797:
 
=={{header|Burlesque}}==
<langsyntaxhighlight lang="burlesque">{1 3 2 5 4}><</langsyntaxhighlight>
 
=={{header|C}}==
<langsyntaxhighlight lang="c">#include <stdlib.h> /* qsort() */
#include <stdio.h> /* printf() */
 
Line 811 ⟶ 816:
nums[0], nums[1], nums[2], nums[3], nums[4]);
return 0;
}</langsyntaxhighlight>
 
''Caution:'' An older version of <tt>intcmp()</tt> did <tt>return *a - *b</tt>. This is only correct when the subtraction does not overflow. Suppose that <tt>*a = 2000000000</tt> and <tt>*b = -2000000000</tt> on a machine with 32-bit <tt>int</tt>. The subtraction <tt>*a - *b</tt> would overflow to <tt>-294967296</tt>, and <tt>intcmp()</tt> would believe <tt>*a < *b</tt>, but the correct answer is <tt>*a > *b</tt>.
Line 817 ⟶ 822:
=={{header|C sharp|C#}}==
 
<langsyntaxhighlight lang="csharp">using System;
using System.Collections.Generic;
 
Line 825 ⟶ 830:
Array.Sort(unsorted);
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
Line 831 ⟶ 836:
 
===Simple Array===
<langsyntaxhighlight lang="cpp">#include <algorithm>
 
int main()
Line 838 ⟶ 843:
std::sort(nums, nums+sizeof(nums)/sizeof(int));
return 0;
}</langsyntaxhighlight>
 
===<tt>std::vector</tt>===
<langsyntaxhighlight lang="cpp">#include <algorithm>
#include <vector>
 
Line 854 ⟶ 859:
std::sort(nums.begin(), nums.end());
return 0;
}</langsyntaxhighlight>
 
===<tt>std::list</tt>===
<langsyntaxhighlight lang="cpp">#include <list>
 
int main()
Line 869 ⟶ 874:
nums.sort();
return 0;
}</langsyntaxhighlight>
 
=={{header|Clean}}==
We use list and array comprehensions to convert an array to and from a list in order to use the built-in <tt>sort</tt> on lists.
<langsyntaxhighlight lang="clean">import StdEnv
 
sortArray :: (a e) -> a e | Array a e & Ord e
Line 879 ⟶ 884:
 
Start :: {#Int}
Start = sortArray {2, 4, 3, 1, 2}</langsyntaxhighlight>
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="clojure">(sort [5 4 3 2 1]) ; sort can also take a comparator function
(1 2 3 4 5)</langsyntaxhighlight>
 
=={{header|COBOL}}==
{{works with|Visual COBOL}}
<langsyntaxhighlight lang="cobol"> PROGRAM-ID. sort-ints.
DATA DIVISION.
Line 908 ⟶ 913:
END-PERFORM
DISPLAY SPACE
.</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
In Common Lisp, the ''sort'' function takes a predicate that is used as the comparator. This parameter can be any two-argument function. To sort a sequence (list or array) of integers, call ''sort'' with the < operator as the predicate:
<langsyntaxhighlight lang="lisp">CL-USER> (sort #(9 -2 1 2 8 0 1 2) #'<)
#(-2 0 1 1 2 2 8 9)</langsyntaxhighlight>
 
=={{header|Crystal}}==
Example demonstrating the support for copy sort and in-place sort (like Ruby)
<syntaxhighlight lang="ruby">
<lang Ruby>
a = [5, 4, 3, 2, 1]
puts a.sort
Line 928 ⟶ 933:
puts a
# => [1, 2, 3, 4, 5]
</syntaxhighlight>
</lang>
 
=={{header|D}}==
<langsyntaxhighlight lang="d">import std.stdio, std.algorithm;
 
void main() {
Line 937 ⟶ 942:
data.sort(); // in-place
assert(data == [1, 2, 2, 3, 4]);
}</langsyntaxhighlight>
 
=={{header|Delphi}}==
<langsyntaxhighlight Delphilang="delphi">uses Types, Generics.Collections;
 
var
Line 947 ⟶ 952:
a := TIntegerDynArray.Create(5, 4, 3, 2, 1);
TArray.Sort<Integer>(a);
end;</langsyntaxhighlight>
 
=={{header|DWScript}}==
<langsyntaxhighlight Delphilang="delphi">var a : array of Integer := [5, 4, 3, 2, 1];
a.Sort; // ascending natural sort
PrintLn(a.Map(IntToStr).Join(',')); // 1,2,3,4,5</langsyntaxhighlight>
 
=={{header|Déjà Vu}}==
<langsyntaxhighlight lang="dejavu">!. sort [ 5 4 3 2 1 ]</langsyntaxhighlight>
{{out}}
<pre>[ 1 2 3 4 5 ]</pre>
 
=={{header|E}}==
<langsyntaxhighlight lang="e">[2,4,3,1,2].sort()</langsyntaxhighlight>
 
=={{header|EGL}}==
{{works with|EDT}}
The following works in EDT with Rich UI and stand-alone programs.
<langsyntaxhighlight EGLlang="egl">program SortExample
 
function main()
Line 980 ⟶ 985:
end
end</langsyntaxhighlight>
{{works with|RBD}}
The following works in RBD but only with Rich UI programs.
<langsyntaxhighlight EGLlang="egl">test1 int[] = [1,-1,8,-8,2,-2,7,-7,3,-3,6,-6,9,-9,4,-4,5,-5,0];
RUILib.sort(test1, sortFunction);
 
Line 989 ⟶ 994:
function sortFunction(a any in, b any in) returns (int)
return ((a as int) - (b as int));
end</langsyntaxhighlight>
 
=={{header|Eiffel}}==
Line 998 ⟶ 1,003:
The list can be easily sorted in reverse. There is a call for `sort' to manually initiate sorting.
 
<langsyntaxhighlight lang="eiffel">
local
l_array: SORTED_TWO_WAY_LIST [INTEGER]
Line 1,004 ⟶ 1,009:
create l_array.make_from_iterable (<<9,8,7,6,5,4,3,2,1,0>>)
end
</syntaxhighlight>
</lang>
 
=={{header|Elena}}==
ELENA 5.0 :
<langsyntaxhighlight lang="elena">import system'routines;
import extensions;
Line 1,016 ⟶ 1,021:
console.printLine(unsorted.clone().sort(ifOrdered).asEnumerable())
}</langsyntaxhighlight>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">list = [2, 4, 3, 1, 2]
IO.inspect Enum.sort(list)
IO.inspect Enum.sort(list, &(&1>&2))</langsyntaxhighlight>
 
{{out}}
Line 1,030 ⟶ 1,035:
 
=={{header|Erlang}}==
<langsyntaxhighlight lang="erlang">List = [2, 4, 3, 1, 2].
SortedList = lists:sort(List).</langsyntaxhighlight>
 
=={{header|Euphoria}}==
<langsyntaxhighlight lang="euphoria">include sort.e
print(1,sort({20, 7, 65, 10, 3, 0, 8, -60}))</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">// sorting an array in place
let nums = [| 2; 4; 3; 1; 2 |]
Array.sortInPlace nums
Line 1,044 ⟶ 1,049:
// create a sorted copy of a list
let nums2 = [2; 4; 3; 1; 2]
let sorted = List.sort nums2</langsyntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">{ 1 4 9 2 3 0 5 } natural-sort .</langsyntaxhighlight>
 
=={{header|Fantom}}==
Line 1,065 ⟶ 1,070:
{{works with|Win32Forth|4.2}}
===Win32Forth===
<langsyntaxhighlight lang="forth">create test-data 2 , 4 , 3 , 1 , 2 ,
test-data 5 cell-sort
</syntaxhighlight>
</lang>
===ANS/ISO Forth===
{{works with|GForth}}
Line 1,073 ⟶ 1,078:
 
Standard Forth does not have a library sort
<langsyntaxhighlight lang="forth">100000 CONSTANT SIZE
 
CREATE MYARRAY SIZE CELLS ALLOT
Line 1,115 ⟶ 1,120:
DUP 2 < IF 2DROP EXIT THEN 1- CELLS OVER + QSORT ;</LANG>
Test at the console
<langsyntaxhighlight lang="forth">FILLIT ok
MYARRAY SIZE QUICKSORT ok</langsyntaxhighlight>
 
=={{header|Fortran}}==
{{works with|Silverfrost FTN95}}
<langsyntaxhighlight lang="fortran">CALL ISORT@(b, a, n)
! n = number of elements
! a = array to be sorted
! b = array of indices of a. b(1) 'points' to the minimum value etc.</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
Qsort is not buildin, but include in the compiler package.
<langsyntaxhighlight lang="freebasic">' version 11-03-2016
' compile with: fbc -s console
 
Line 1,184 ⟶ 1,189:
Print : Print "hit any key to end program"
Sleep
End</langsyntaxhighlight>
{{out}}
<pre>unsorted array
Line 1,194 ⟶ 1,199:
=={{header|Frink}}==
The following sorts an array in-place.
<langsyntaxhighlight lang="frink">a = [5, 2, 4, 1, 6, 7, 9, 3, 8, 0]
sort[a]</langsyntaxhighlight>
 
=={{header|FunL}}==
<langsyntaxhighlight lang="funl">nums = [5, 2, 78, 2, 578, -42]
println( sort(nums) ) // sort in ascending order
println( nums.sortWith((>)) ) // sort in descending order</langsyntaxhighlight>
 
{{out}}
Line 1,207 ⟶ 1,212:
[-42, 2, 2, 5, 78, 578]
[578, 78, 5, 2, 2, -42]
</pre>
 
=={{header|FutureBasic}}==
<syntaxhighlight lang="futurebasic">
window 1, @"Sort an integer array"
 
void local fn DoIt
CFArrayRef array = @[@13,@71,@42,@8,@5,@27]
array = fn ArraySortedArrayUsingSelector( array, @"compare:" )
print fn ArrayComponentsJoinedByString( array, @", " )
end fn
 
fn DoIt
 
HandleEvents
</syntaxhighlight>
{{out}}
<pre>
5, 8, 13, 27, 42, 71
</pre>
 
=={{header|Fōrmulæ}}==
 
{{FormulaeEntry|page=https://formulae.org/?script=examples/Sort_an_integer_array}}
Fōrmulæ programs are not textual, visualization/edition of programs is done showing/manipulating structures but not text. Moreover, there can be multiple visual representations of the same program. Even though it is possible to have textual representation &mdash;i.e. XML, JSON&mdash; they are intended for storage and transfer purposes more than visualization and edition.
 
'''Solution'''
 
[[File:Fōrmulæ - Sort an integer array 01.png]]
Programs in Fōrmulæ are created/edited online in its [https://formulae.org website], However they run on execution servers. By default remote servers are used, but they are limited in memory and processing power, since they are intended for demonstration and casual use. A local server can be downloaded and installed, it has no limitations (it runs in your own computer). Because of that, example programs can be fully visualized and edited, but some of them will not run if they require a moderate or heavy computation/memory resources, and no local server is being used.
 
[[File:Fōrmulæ - Sort an integer array 02.png]]
In '''[https://formulae.org/?example=Sort_an_integer_array this]''' page you can see the program(s) related to this task and their results.
 
=={{header|Gambas}}==
'''[https://gambas-playground.proko.eu/?gist=1f1d244aa95c329eb87cb538f0d5fc4a Click this link to run this code]'''
<langsyntaxhighlight lang="gambas">Public Sub Main()
Dim iArray As Integer[] = [8, 2, 5, 9, 1, 3, 6, 7, 4]
Dim iTemp As Integer
Line 1,230 ⟶ 1,256:
Print Left(sOutput, -2)
 
End</langsyntaxhighlight>
 
Output:
Line 1,238 ⟶ 1,264:
 
=={{header|GAP}}==
<langsyntaxhighlight lang="gap">a := [ 8, 2, 5, 9, 1, 3, 6, 7, 4 ];
# Make a copy (with "b := a;", b and a would point to the same list)
b := ShallowCopy(a);
Line 1,251 ⟶ 1,277:
# [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
b;
# [ 8, 2, 5, 9, 1, 3, 6, 7, 4 ]</langsyntaxhighlight>
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
import "fmt"
import "sort"
Line 1,262 ⟶ 1,288:
sort.Ints(nums)
fmt.Println(nums)
}</langsyntaxhighlight>
 
=={{header|Golfscript}}==
<langsyntaxhighlight lang="golfscript">[2 4 3 1 2]$</langsyntaxhighlight>
 
=={{header|Groovy}}==
<langsyntaxhighlight lang="groovy">println ([2,4,0,3,1,2,-12].sort())</langsyntaxhighlight>
 
Output:
Line 1,276 ⟶ 1,302:
{{works with|GHC|GHCi|6.6}}
<langsyntaxhighlight lang="haskell">nums = [2,4,3,1,2] :: [Int]
sorted = List.sort nums</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang="hicest">DIMENSION array(100)
 
array = INT( RAN(100) )
SORT(Vector=array, Sorted=array) </langsyntaxhighlight>
 
=={{header|Huginn}}==
<langsyntaxhighlight lang="huginn">main() {
nums = [2, 4, 3, 1, 2];
nums.sort();
}</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
Line 1,295 ⟶ 1,321:
 
In the example below, L will remain an unsorted list and S will be sorted.
<langsyntaxhighlight Iconlang="icon">S := sort(L:= [63, 92, 51, 92, 39, 15, 43, 89, 36, 69]) # will sort a list</langsyntaxhighlight>
 
=={{header|IDL}}==
<langsyntaxhighlight lang="idl">result = array[sort(array)]</langsyntaxhighlight>
 
=={{header|Inform 7}}==
<langsyntaxhighlight lang="inform7">let L be {5, 4, 7, 1, 18};
sort L;</langsyntaxhighlight>
 
=={{header|Io}}==
<langsyntaxhighlight lang="lua">mums := list(2,4,3,1,2)
sorted := nums sort # returns a new sorted array. 'nums' is unchanged
nums sortInPlace # sort 'nums' "in-place"</langsyntaxhighlight>
 
=={{header|J}}==
<syntaxhighlight lang ="j">/:~</langsyntaxhighlight>
The verb<tt> /:~ </tt>sorts <i>anything</i> that J can represent. For example:
 
<langsyntaxhighlight lang="j"> ] a=: 10 ?@$ 100 NB. random vector
63 92 51 92 39 15 43 89 36 69
/:~ a
15 36 39 43 51 63 69 89 92 92</langsyntaxhighlight>
Arrays of any rank are treated as lists of component arrays. Thus <tt>/:~</tt> sorts not only atoms within a list, but whole lists within a table, tables within a three-axis array, and so on. The level of structure at which sorting occurs may also be specified, so that <tt>/:~"1</tt> sorts the atoms within the finest-grained list within the array, regardless of the overall rank of the array. See the [[j:Essays/The_TAO_of_J|Total Array Ordering essay]] on the JWiki for more details.
 
Line 1,323 ⟶ 1,349:
=={{header|Java}}==
===Array===
<langsyntaxhighlight lang="java">import java.util.Arrays;
 
public class Example {
Line 1,331 ⟶ 1,357:
Arrays.sort(nums);
}
}</langsyntaxhighlight>
 
===List===
{{works with|Java|1.5+}}
<langsyntaxhighlight lang="java5">import java.util.Arrays;
import java.util.Collections;
import java.util.List;
Line 1,345 ⟶ 1,371:
Collections.sort(nums);
}
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
Line 1,352 ⟶ 1,378:
JavaScript sorts lexically by default, so "10000" comes before "2". To sort numerically, a custom comparator is used.
 
<langsyntaxhighlight lang="javascript">function int_arr(a, b) {
return a - b;
}
var numbers = [20, 7, 65, 10, 3, 0, 8, -60];
numbers.sort(int_arr);
document.write(numbers);</langsyntaxhighlight>
 
=={{header|Jinja}}==
<langsyntaxhighlight lang="jinja">
from jinja2 import Template
print(Template("{{ [53, 17, 42, 61, 35] | sort }}").render())
</syntaxhighlight>
</lang>
Descending order:
<langsyntaxhighlight lang="jinja">
from jinja2 import Template
print(Template("{{ [53, 17, 42, 61, 35] | sort(reverse=true) }}").render())
</syntaxhighlight>
</lang>
 
=={{header|jq}}==
jq's builtin <code>sort</code> filter sorts the elements of an array in ascending order:
<langsyntaxhighlight lang="jq">[2,1,3] | sort # => [1,2,3]</langsyntaxhighlight>
 
=={{header|Julia}}==
Julia has both out-of-place (<code>sort</code>) and in-place (<code>sort!</code>) sorting functions in its standard-library:
<langsyntaxhighlight lang="julia">julia> a = [4,2,3,1]
4-element Int32 Array:
4
Line 1,408 ⟶ 1,434:
2
3
4</langsyntaxhighlight>
 
=={{header|K}}==
<langsyntaxhighlight lang="k"> num: -10?10 / Integers from 0 to 9 in random order
5 9 4 2 0 3 6 1 8 7
 
srt: {x@<x} / Generalized sort ascending
srt num
0 1 2 3 4 5 6 7 8 9</langsyntaxhighlight>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang="scala">// version 1.0.6
 
fun main(args: Array<String>) {
Line 1,425 ⟶ 1,451:
ints.sort()
println(ints.joinToString(prefix = "[", postfix = "]"))
}</langsyntaxhighlight>
 
{{out}}
Line 1,433 ⟶ 1,459:
 
=={{header|Lambdatalk}}==
<langsyntaxhighlight lang="scheme">
1) sorting digits in a number returns a new number of ordered digits
{W.sort < 51324}
Line 1,445 ⟶ 1,471:
{A.sort! < {A.new 51 111 33 2 41}}
-> [2,33,41,51,111]
</syntaxhighlight>
</lang>
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso">local(array) = array(5,20,3,2,6,1,4)
#array->sort
#array // 1, 2, 3, 4, 5, 6, 20
Line 1,454 ⟶ 1,480:
// Reverse the sort order
#array->sort(false)
#array // 20, 6, 5, 4, 3, 2, 1</langsyntaxhighlight>
 
=={{header|Liberty BASIC}}==
LB has an array-sort command. Parameters are arrayname, start term, finish term.
<langsyntaxhighlight lang="lb">N =20
dim IntArray( N)
 
Line 1,473 ⟶ 1,499:
for i =1 to N
print IntArray( i)
next i</langsyntaxhighlight>
 
=={{header|Lingo}}==
<langsyntaxhighlight lang="lingo">l = [7, 4, 23]
l.sort()
put l
-- [4, 7, 23]</langsyntaxhighlight>
 
=={{header|LiveCode}}==
LiveCode can sort lines or items natively. The delimiter for items can be set to any single character, but defaults to comma.
<langsyntaxhighlight LiveCodelang="livecode">put "3,2,5,4,1" into X
sort items of X numeric
put X
-- outputs "1,2,3,4,5"</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">t = {4, 5, 2}
table.sort(t)
print(unpack(t))</langsyntaxhighlight>
 
=={{header|Maple}}==
<langsyntaxhighlight Maplelang="maple">sort([5,7,8,3,6,1]);
sort(Array([5,7,8,3,6,1]))</langsyntaxhighlight>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight lang="mathematica">numbers=Sort[{2,4,3,1,2}]</langsyntaxhighlight>
 
=={{header|MATLAB}}==
<langsyntaxhighlight Matlablang="matlab">a = [4,3,7,-2,9,1]; b = sort(a) % b contains elements of a in ascending order
[b,idx] = sort(a) % b contains a(idx)</langsyntaxhighlight>
 
=={{header|Maxima}}==
<langsyntaxhighlight lang="maxima">sort([9, 4, 3, 7, 6, 1, 10, 2, 8, 5]);</langsyntaxhighlight>
 
=={{header|MAXScript}}==
<langsyntaxhighlight lang="maxscript">arr = #(5, 4, 3, 2, 1)
arr = sort arr</langsyntaxhighlight>
 
=={{header|Mercury}}==
<syntaxhighlight lang="text">:- module sort_int_list.
:- interface.
:- import_module io.
Line 1,525 ⟶ 1,551:
list.sort(Nums, Sorted),
io.write(Sorted, !IO),
io.nl(!IO).</langsyntaxhighlight>
 
=={{header|min}}==
{{works with|min|0.19.3}}
<langsyntaxhighlight lang="min">(5 2 1 3 4) '> sort print</langsyntaxhighlight>
{{out}}
<pre>
Line 1,537 ⟶ 1,563:
=={{header|Modula-3}}==
Modula-3 provides a generic <tt>ArraySort</tt> module, as well as an instance of that module for integers called <tt>IntArraySort</tt>.
<langsyntaxhighlight lang="modula3">MODULE ArraySort EXPORTS Main;
 
IMPORT IntArraySort;
Line 1,545 ⟶ 1,571:
BEGIN
IntArraySort.Sort(arr);
END ArraySort.</langsyntaxhighlight>
 
=={{header|MUMPS}}==
<langsyntaxhighlight MUMPSlang="mumps">SORTARRAY(X,SEP)
;X is the list of items to sort
;X1 is the temporary array
Line 1,559 ⟶ 1,585:
SET I="" FOR SET I=$O(X1(I)) Q:I="" SET Y=$SELECT($L(Y)=0:I,1:Y_SEP_I)
KILL I,X1
QUIT Y</langsyntaxhighlight>
Output:<pre>USER>W $$SORTARRAY^ROSETTA("3,5,1,99,27,16,0,-1",",")
-1,0,1,3,5,16,27,99
Line 1,566 ⟶ 1,592:
=={{header|Nanoquery}}==
'sort' in the Nanoquery standard library has a Quicksort function.
<langsyntaxhighlight Nanoquerylang="nanoquery">% import sort
% println sort({2,4,3,1,2})
[1, 2, 2, 3, 4]</langsyntaxhighlight>
 
=={{header|Neko}}==
<syntaxhighlight lang="actionscript">/**
<lang ActionScript>/**
<doc><h2>Sort integer array, in Neko</h2>
<p>Array sort function modified from Haxe codegen with -D neko-source</p>
Line 1,610 ⟶ 1,636:
 
/* Also returns the sorted array for chaining */
$print(sort($array(3,1,4,1,5,9,2,6,5,3,5,8)), "\n")</langsyntaxhighlight>
 
{{out}}
Line 1,620 ⟶ 1,646:
 
=={{header|Nemerle}}==
<langsyntaxhighlight Nemerlelang="nemerle">using System.Console;
 
module IntSort
Line 1,632 ⟶ 1,658:
WriteLine(sorted);
}
}</langsyntaxhighlight>
Output:
<pre>[1, 5, 3, 7, 2, 8, 3, 9]
Line 1,638 ⟶ 1,664:
 
=={{header|NetRexx}}==
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref savelog symbols binary
 
Line 1,659 ⟶ 1,685:
say sorted.strip('t')
 
return</langsyntaxhighlight>
 
'''Output'''
Line 1,669 ⟶ 1,695:
NetRexx reimplementations of the [[#REXX|Rexx]] samples from below:
 
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref savelog symbols
 
Line 1,740 ⟶ 1,766:
say
 
return</langsyntaxhighlight>
 
'''Output'''
Line 1,791 ⟶ 1,817:
</pre>
 
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref savelog symbols
 
Line 1,844 ⟶ 1,870:
end
 
return</langsyntaxhighlight>
 
'''Output'''
Line 1,853 ⟶ 1,879:
 
=={{header|Nial}}==
<langsyntaxhighlight lang="nial">sort >= 9 6 8 7 1 10
= 10 9 8 7 6 1</langsyntaxhighlight>
 
=={{header|Nim}}==
<langsyntaxhighlight lang="nim">import algorithm
var a: array[0..8, int] = [2, 3, 5, 8, 4, 1, 6, 9, 7]
a.sort(Ascending)
for x in a:
echo x</langsyntaxhighlight>
{{out}}
<pre>1
Line 1,876 ⟶ 1,902:
=={{header|Niue}}==
'''Library'''
<langsyntaxhighlight Niuelang="niue">2 6 1 0 3 8 sort .s
0 1 2 3 6 8</langsyntaxhighlight>
 
=={{header|Objeck}}==
<langsyntaxhighlight lang="objeck">bundle Default {
class Sort {
function : Main(args : System.String[]) ~ Nil {
Line 1,887 ⟶ 1,913:
}
}
}</langsyntaxhighlight>
 
=={{header|Objective-C}}==
<langsyntaxhighlight lang="objc">NSArray *nums = @[@2, @4, @3, @1, @2];
NSArray *sorted = [nums sortedArrayUsingSelector:@selector(compare:)];</langsyntaxhighlight>
 
=={{header|OCaml}}==
===Array===
<langsyntaxhighlight lang="ocaml">let nums = [|2; 4; 3; 1; 2|]
Array.sort compare nums</langsyntaxhighlight>
 
===List===
<langsyntaxhighlight lang="ocaml">let nums = [2; 4; 3; 1; 2]
let sorted = List.sort compare nums</langsyntaxhighlight>
 
=={{header|Octave}}==
Line 1,906 ⟶ 1,932:
The variable <tt>v</tt> can be a vector or a matrix (columns will be sorted).
 
<langsyntaxhighlight lang="octave">sortedv = sort(v);</langsyntaxhighlight>
 
=={{header|Oforth}}==
 
<langsyntaxhighlight Oforthlang="oforth">[ 8, 2, 5, 9, 1, 3, 6, 7, 4 ] sort</langsyntaxhighlight>
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang="rexx">a = .array~of(4, 1, 6, -2, 99, -12)
say "The sorted numbers are"
say a~sortWith(.numericComparator~new)~makeString</langsyntaxhighlight>
Output:
<pre>
Line 1,929 ⟶ 1,955:
=={{header|Order}}==
Passing the less-than operator to the built-in sequence (i.e. list) sort function:
<langsyntaxhighlight lang="c">#include <order/interpreter.h>
 
ORDER_PP( 8seq_sort(8less, 8seq(2, 4, 3, 1, 2)) )</langsyntaxhighlight>
 
=={{header|Oz}}==
<langsyntaxhighlight lang="oz">declare
Nums = [2 4 3 1 2]
Sorted = {List.sort Nums Value.'<'}
in
{Show Sorted}</langsyntaxhighlight>
 
=={{header|PARI/GP}}==
<syntaxhighlight lang ="parigp">vecsort(v)</langsyntaxhighlight>
 
=={{header|Peloton}}==
Sorting a list of numbers as strings and as numbers (from the manual.)
<langsyntaxhighlight lang="sgml">Construct a list of numbers
<@ LETCNSLSTLIT>L|65^84^1^25^77^4^47^2^42^44^41^25^69^3^51^45^4^39^</@>
Numbers sort as strings
Line 1,959 ⟶ 1,985:
<@ SAYDMPLST>list</@>
<@ ACTSRTENTLSTLIT>list|__NumericDescending</@>
<@ SAYDMPLST>list</@></langsyntaxhighlight>
 
Output
<langsyntaxhighlight lang="html">Construct a list of numbers
Numbers sort as strings
Line 1,976 ⟶ 2,002:
1^2^3^4^4^25^25^39^41^42^44^45^47^51^65^69^77^84^
84^77^69^65^51^47^45^44^42^41^39^25^25^4^4^3^2^1^</langsyntaxhighlight>
 
=={{header|Perl}}==
{{works with|Perl|5.8.6}}
<langsyntaxhighlight lang="perl">@nums = (2,4,3,1,2);
@sorted = sort {$a <=> $b} @nums;</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/basics}}
<!--<langsyntaxhighlight Phixlang="phix">-->
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">sort</span><span style="color: #0000FF;">({</span><span style="color: #000000;">9</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">10</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">4</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">5</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">8</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">7</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">6</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">2</span><span style="color: #0000FF;">})</span>
<!--</langsyntaxhighlight>-->
 
=={{header|Phixmonti}}==
<langsyntaxhighlight Phixmontilang="phixmonti">include ..\Utilitys.pmt
 
( 9 10 3 1 4 5 8 7 6 2 ) sort print</langsyntaxhighlight>
 
=={{header|PHP}}==
{{works with|PHP|4.4.4 CLI}}
<langsyntaxhighlight lang="php"><?php
$nums = array(2,4,3,1,2);
sort($nums);
?></langsyntaxhighlight>
 
=={{header|PicoLisp}}==
The [http://software-lab.de/doc/refS.html#sort sort] function in PicoLisp
returns already by default an ascending list (of any type, not only integers):
<langsyntaxhighlight PicoLisplang="picolisp">(sort (2 4 3 1 2))
-> (1 2 2 3 4)</langsyntaxhighlight>
 
=={{header|PL/I}}==
{{works with|IBM PL/I|7.5}}
<langsyntaxhighlight lang="pli">DCL (T(10)) FIXED BIN(31); /* scratch space of length N/2 */
 
MERGE: PROCEDURE (A,LA,B,LB,C);
Line 2,045 ⟶ 2,071:
CALL MERGE(T,M,AMP1,N-M,A);
RETURN;
END MERGESORT;</langsyntaxhighlight>
 
=={{header|Pop11}}==
Pop11 library function sorts lists. So we first convert array to list, then sort and finally convert back:
 
<langsyntaxhighlight lang="pop11">lvars ar = {2 4 3 1 2};
;;; Convert array to list.
;;; destvector leaves its results and on the pop11 stack + an integer saying how many there were
Line 2,060 ⟶ 2,086:
;;; Convert list to array
destlist(ls);
consvector() -> ar;</langsyntaxhighlight>
 
The above can be abbreviated to more economical, but possibly more opaque, syntax, using pop11 as a functional language:
 
<langsyntaxhighlight lang="pop11">lvars ar = {2 4 3 1 2};
consvector(destlist(sort(conslist(destvector(ar))))) -> ar;
;;; print the sorted vector:
ar =>
** {1 2 2 3 4}</langsyntaxhighlight>
 
(The list created by conslist will be garbage-collected.)
Line 2,074 ⟶ 2,100:
Alternatively, using the datalist function, even more economically:
 
<langsyntaxhighlight lang="pop11">lvars ar = {2 4 3 1 2};
consvector(destlist(sort(datalist(ar)))) -> ar;</langsyntaxhighlight>
 
or in Forth-like pop11 postfix syntax:
 
<langsyntaxhighlight lang="pop11">lvars ar = {2 4 3 1 2};
ar.datalist.sort.destlist.consvector -> ar;</langsyntaxhighlight>
 
=={{header|Potion}}==
<langsyntaxhighlight lang="potion">(7, 5, 1, 2, 3, 8, 9) sort join(", ") print</langsyntaxhighlight>
 
=={{header|PowerBASIC}}==
PowerBASIC has several options available for sorting. At its simplest, an array (of any type) is sorted using <code>ARRAY SORT</code>:
<syntaxhighlight lang ="powerbasic">ARRAY SORT x()</langsyntaxhighlight>
 
Options are available to limit sorting to only part of the array, collate string arrays, sort multiple arrays together, etc. (Details [http://www.powerbasic.com/support/help/pbwin/html/ARRAY_SORT_statement.htm here].)
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang="powershell">34,12,23,56,1,129,4,2,73 | Sort-Object</langsyntaxhighlight>
 
=={{header|Prolog}}==
Line 2,101 ⟶ 2,127:
 
=={{header|PureBasic}}==
<langsyntaxhighlight PureBasiclang="purebasic">Dim numbers(20)
For i = 0 To 20
numbers(i) = Random(1000)
Next
 
SortArray(numbers(), #PB_Sort_Ascending)</langsyntaxhighlight>
 
=={{header|Python}}==
{{works with|Python|2.3}}
<langsyntaxhighlight lang="python">nums = [2,4,3,1,2]
nums.sort()</langsyntaxhighlight>
 
'''Note:''' The array <tt>nums</tt> is sorted in place.
Line 2,119 ⟶ 2,145:
You could also use the built-in sorted() function
 
<langsyntaxhighlight lang="python">nums = sorted([2,4,3,1,2])</langsyntaxhighlight>
 
=={{header|Quackery}}==
Line 2,135 ⟶ 2,161:
 
=={{header|R}}==
<langsyntaxhighlight lang="r">nums <- c(2,4,3,1,2)
sorted <- sort(nums)</langsyntaxhighlight>
 
=={{header|Racket}}==
<syntaxhighlight lang="racket">
<lang Racket>
-> (sort '(1 9 2 8 3 7 4 6 5) <)
'(1 2 3 4 5 6 7 8 9)
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
Line 2,148 ⟶ 2,174:
If <code>@a</code> contains only numbers:
 
<syntaxhighlight lang="raku" perl6line>my @sorted = sort @a;</langsyntaxhighlight>
 
For an in-place sort:
 
<syntaxhighlight lang="raku" perl6line>@a .= sort;</langsyntaxhighlight>
 
=={{header|Rascal}}==
Rascal has a built-in sort function that sort the elements of a list. Additionally, one can give a LessThenOrEqual function to compare the elements (See [http://tutor.rascal-mpl.org/Courses/Rascal/Rascal.html#/Courses/Rascal/Libraries/Prelude/List/sort/sort.html documentation]).
<langsyntaxhighlight lang="rascal">rascal>import List;
ok
 
Line 2,166 ⟶ 2,192:
 
rascal>sort(a, bool(int a, int b){return a >= b;})
list[int]: [5,4,3,2,1]</langsyntaxhighlight>
 
=={{header|Raven}}==
Sort list in place:
 
<langsyntaxhighlight lang="raven">[ 2 4 3 1 2 ] sort</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight lang="rebol">sort [2 4 3 1 2]</langsyntaxhighlight>
 
=={{header|Red}}==
<langsyntaxhighlight Redlang="red">>> nums: [3 2 6 4 1 9 0 5 7]
== [3 2 6 4 1 9 0 5 7]
>> sort nums
== [0 1 2 3 4 5 6 7 9]</langsyntaxhighlight>
 
=={{header|REXX}}==
===sort an array===
This REXX version creates an array with over a score of Euler numbers (integers), then sorts it.
<langsyntaxhighlight lang="rexx">/*REXX program sorts an array (using E─sort), in this case, the array contains integers.*/
numeric digits 30 /*enables handling larger Euler numbers*/
@. = 0; @.1 = 1
Line 2,213 ⟶ 2,239:
do j=1 for #; say _ arg(1) 'array element' right(j, w)"="right(@.j, 20)
end /*j*/
return</langsyntaxhighlight>
{{out|output|text=&nbsp; when using the default internal input:}}
<pre>
Line 2,267 ⟶ 2,293:
Because it so much more efficient to sort an array, &nbsp; an array is built from the list,
<br>it is then sorted, &nbsp; and then the list is re-constituted.
<langsyntaxhighlight lang="rexx">/*REXX program sorts (using E─sort) and displays a list of some interesting integers. */
Bell= 1 1 2 5 15 52 203 877 4140 21147 115975 /*a few Bell " */
Bern= '1 -1 1 0 -1 0 1 0 -1 0 5 0 -691 0 7 0 -3617' /*" " Bernoulli " */
Line 2,292 ⟶ 2,318:
end /*i*/
end /*while h>1*/
return</langsyntaxhighlight>
{{out|output|text=&nbsp; when using the default internal inputs:}}
 
Line 2,303 ⟶ 2,329:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">aArray = [2,4,3,1,2]
see sort(aArray)</langsyntaxhighlight>
 
=={{header|RPL}}==
{{works with|HP|48G}}
{2 4 3 1 2} SORT
{{out}}
<pre>
1: { 1 2 2 3 4 }
</pre>
=={{header|Ruby}}==
<langsyntaxhighlight lang="ruby">nums = [2,4,3,1,2]
sorted = nums.sort # returns a new sorted array. 'nums' is unchanged
p sorted #=> [1, 2, 2, 3, 4]
Line 2,313 ⟶ 2,346:
 
nums.sort! # sort 'nums' "in-place"
p nums #=> [1, 2, 2, 3, 4]</langsyntaxhighlight>
 
=={{header|Rust}}==
Uses merge sort in place (undocumented), allocating ~2*n memory where n is a length of an array.
<langsyntaxhighlight lang="rust">fn main() {
let mut a = vec!(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
 
a.sort();
println!("{:?}", a);
}</langsyntaxhighlight>
 
=={{header|Sather}}==
<langsyntaxhighlight lang="sather">class MAIN is
main is
arr: ARRAY{INT} := |4, 6, 7, 2, 1, 0, 100, 21, 34|;
Line 2,335 ⟶ 2,368:
#OUT+" sorted: " + arr + "\n";
end;
end;</langsyntaxhighlight>
 
Output:
<syntaxhighlight lang="text">unsorted: {4,6,7,2,1,0,100,21,34}
sorted: {0,1,2,4,6,7,21,34,100}</langsyntaxhighlight>
 
=={{header|Scala}}==
{{libheader|Scala}}
===Array===
Scala's "default" Array is a ''mutable'' data structure, very close to Java's Array. Generally speaking, that means an "array" is not very Scala-lesque, even as mutable data structures go. It can serves a purpose, though. If array is the right data type for your need, then that is how you sort it.<langsyntaxhighlight Scalalang="scala">import scala.compat.Platform
 
object Sort_an_integer_array extends App {
Line 2,358 ⟶ 2,391:
 
println(s"Array in sorted order.\nSuccessfully completed without errors. [total ${Platform.currentTime - executionStart} ms]")
}</langsyntaxhighlight>
===List===
<langsyntaxhighlight Scalalang="scala">println(List(5,2,78,2,578,-42).sorted)
//--> List(-42, 2, 2, 5, 78, 578)</langsyntaxhighlight>
 
=={{header|Scheme}}==
{{works with|Guile}}
Same as [[Common Lisp]]
<langsyntaxhighlight lang="scheme">(sort #(9 -2 1 2 8 0 1 2) #'<)</langsyntaxhighlight>
 
{{libheader|Scheme/SRFIs}}
Line 2,372 ⟶ 2,405:
Sorting is also available through SRFIs. SRFI 132 provides separate list-sort and vector-sort routines:
 
<langsyntaxhighlight lang="scheme">
> (import (srfi 132))
> (list-sort < '(9 -2 1 2 8 0 1 2))
Line 2,379 ⟶ 2,412:
> (vector-sort < #(9 -2 1 2 8 0 1 2))
#(-2 0 1 1 2 2 8 9)
</syntaxhighlight>
</lang>
 
SRFI 132 replaced the older SRFI 95, which is still found in many implementations. SRFI 95 provides a generic sort function (but note the order of the sequence and comparator!):
 
<langsyntaxhighlight lang="scheme">
> (import (srfi 95))
> (sort '(9 -2 1 2 8 0 1 2) <)
Line 2,389 ⟶ 2,422:
> (sort #(9 -2 1 2 8 0 1 2) <)
#(-2 0 1 1 2 2 8 9)
</syntaxhighlight>
</lang>
 
=={{header|Seed7}}==
<langsyntaxhighlight lang="seed7">var array integer: nums is [] (2, 4, 3, 1, 2);
 
nums := sort(nums);</langsyntaxhighlight>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">var nums = [2,4,3,1,2];
var sorted = nums.sort; # returns a new sorted array.
nums.sort!; # sort 'nums' "in-place"</langsyntaxhighlight>
 
=={{header|Slate}}==
<langsyntaxhighlight lang="slate"> #(7 5 2 9 0 -1) sort</langsyntaxhighlight>
 
=={{header|Smalltalk}}==
<langsyntaxhighlight lang="smalltalk"> #(7 5 2 9 0 -1) asSortedCollection</langsyntaxhighlight>
or destructive:
<langsyntaxhighlight lang="smalltalk"> #(7 5 2 9 0 -1) sort</langsyntaxhighlight>
 
=={{header|SparForte}}==
As a structured script.
<syntaxhighlight lang="ada">#!/usr/local/bin/spar
pragma annotate( summary, "int_sort" )
@( description, "Sort an array (or list) of integers in ascending" )
@( description, "numerical order. Use a sorting facility provided by" )
@( description, "the language/library if possible." )
@( category, "tutorials" )
@( author, "Ken O. Burtch" )
@( see_also, "http://rosettacode.org/wiki/Sort_an_integer_array" );
pragma license( unrestricted );
 
pragma software_model( nonstandard );
pragma restriction( no_external_commands );
 
procedure int_sort is
type int_array is array (1..9) of integer;
int_values : int_array := (0,1,8,2,7,3,6,4,5);
begin
arrays.heap_sort( int_values );
for i in arrays.first( int_values )..arrays.last( int_values ) loop
? int_values(i);
end loop;
end int_sort;</syntaxhighlight>
 
=={{header|Sparkling}}==
<langsyntaxhighlight lang="sparkling">var arr = { 2, 8, 1, 4, 6, 5, 3, 7, 0, 9 };
sort(arr);</langsyntaxhighlight>
 
=={{header|Standard ML}}==
Line 2,418 ⟶ 2,476:
===Array===
{{works with|SML/NJ}}
<langsyntaxhighlight lang="sml">- val nums = Array.fromList [2, 4, 3, 1, 2];
val nums = [|2,4,3,1,2|] : int array
- ArrayQSort.sort Int.compare nums;
val it = () : unit
- nums;
val it = [|1,2,2,3,4|] : int array</langsyntaxhighlight>
 
{{works with|Moscow ML}}
<langsyntaxhighlight lang="sml">- load "Arraysort";
> val it = () : unit
- load "Int";
Line 2,435 ⟶ 2,493:
> val it = () : unit
- Array.foldr op:: [] nums;
> val it = [1, 2, 2, 3, 4] : int list</langsyntaxhighlight>
 
===List===
{{works with|SML/NJ}}
<langsyntaxhighlight lang="sml">- val nums = [2, 4, 3, 1, 2];
val nums = [2,4,3,1,2] : int list
- val sorted = ListMergeSort.sort op> nums;
val sorted = [1,2,2,3,4] : int list</langsyntaxhighlight>
 
{{works with|Moscow ML}}
<langsyntaxhighlight lang="sml">- load "Listsort";
> val it = () : unit
- load "Int";
Line 2,452 ⟶ 2,510:
> val nums = [2, 4, 3, 1, 2] : int list
- val sorted = Listsort.sort Int.compare nums;
> val sorted = [1, 2, 2, 3, 4] : int list</langsyntaxhighlight>
 
=={{header|Stata}}==
Line 2,458 ⟶ 2,516:
See '''[https://www.stata.com/help.cgi?sort sort]''' in Stata help.
 
<langsyntaxhighlight lang="stata">. clear
. matrix a=(2,9,4,7,5,3,6,1,8)'
. qui svmat a
Line 2,477 ⟶ 2,535:
8. | 8 |
9. | 9 |
+----+</langsyntaxhighlight>
 
=== Sort a macro list ===
See '''[https://www.stata.com/help.cgi?macrolists macrolists]''' in Stata help for other functions on lists stored in macros.
 
<langsyntaxhighlight lang="stata">. local a 2 9 4 7 5 3 6 1 8
. di "`: list sort a'"
1 2 3 4 5 6 7 8 9</langsyntaxhighlight>
 
=== Mata ===
See Mata's '''[http://www.stata.com/help.cgi?mf_sort sort]''' function.
 
<langsyntaxhighlight lang="stata">mata
: a=2\9\4\7\5\3\6\1\8
 
Line 2,505 ⟶ 2,563:
9 | 9 |
+-----+
end</langsyntaxhighlight>
 
=={{header|Swift}}==
===Sort in place===
{{works with|Swift|2.x+}}
<langsyntaxhighlight lang="swift">var nums = [2, 4, 3, 1, 2]
nums.sortInPlace()
print(nums)</langsyntaxhighlight>
or
<langsyntaxhighlight lang="swift">var nums = [2, 4, 3, 1, 2]
nums.sortInPlace(<)
print(nums)</langsyntaxhighlight>
 
{{works with|Swift|1.x}}
<langsyntaxhighlight lang="swift">var nums = [2, 4, 3, 1, 2]
nums.sort(<)
println(nums)</langsyntaxhighlight>
or
<langsyntaxhighlight lang="swift">var nums = [2, 4, 3, 1, 2]
sort(&nums)
println(nums)</langsyntaxhighlight>
or
<langsyntaxhighlight lang="swift">var nums = [2, 4, 3, 1, 2]
sort(&nums, <)
println(nums)</langsyntaxhighlight>
 
===Return new array===
Line 2,535 ⟶ 2,593:
 
{{works with|Swift|2.x+}}
<langsyntaxhighlight lang="swift">let nums = [2,4,3,1,2].sort()
print(nums)</langsyntaxhighlight>
or
<langsyntaxhighlight lang="swift">let nums = [2,4,3,1,2].sort(<)
print(nums)</langsyntaxhighlight>
 
{{works with|Swift|1.x}}
<langsyntaxhighlight lang="swift">let nums = sorted([2,4,3,1,2])
println(nums)</langsyntaxhighlight>
or
<langsyntaxhighlight lang="swift">let nums = [2,4,3,1,2].sorted(<)
println(nums)</langsyntaxhighlight>
 
=={{header|Tcl}}==
<langsyntaxhighlight lang="tcl">set result [lsort -integer $unsorted_list]</langsyntaxhighlight>
 
=={{header|TI-83 BASIC}}==
Line 2,560 ⟶ 2,618:
This can be done by using the bubble sort library:
 
<langsyntaxhighlight lang="toka">needs bsort
arrayname number_elements bsort</langsyntaxhighlight>
 
See the Toka entry on [[Bubble Sort]] for a full example.
Line 2,568 ⟶ 2,626:
Each shell parameter separates the integers using the default IFS whitespace (space, tab, newline).
 
<langsyntaxhighlight lang="bash">nums="2 4 3 1 5"
sorted=`printf "%s\n" $nums | sort -n`
echo $sorted # prints 1 2 3 4 5</langsyntaxhighlight>
 
Alternate solution: <tt>sorted=`for i in $nums; do echo $i; done | sort -n`</tt>
Line 2,578 ⟶ 2,636:
 
{{works with|pdksh|5.2.14}}
<langsyntaxhighlight lang="bash">set -A nums 2 4 3 1 5
set -A sorted $(printf "%s\n" ${nums[*]} | sort -n)
echo ${sorted[*]} # prints 1 2 3 4 5</langsyntaxhighlight>
 
Users of [[bash]], [[ksh93]] and [[mksh]] can probably use the <tt>nums=(2 4 3 1 2)</tt> syntax.
 
=={{header|Ursa}}==
<langsyntaxhighlight lang="ursa">decl int<> nums
append 2 4 3 1 2 nums
sort nums</langsyntaxhighlight>
 
=={{header|Ursala}}==
using the built in sort operator, -<, with the nleq library function
for comparing natural numbers
<langsyntaxhighlight Ursalalang="ursala">#import nat
 
#cast %nL
 
example = nleq-< <39,47,40,53,14,23,88,52,78,62,41,92,88,66,5,40></langsyntaxhighlight>
output:
<pre><5,14,23,39,40,40,41,47,52,53,62,66,78,88,88,92></pre>
 
=={{header|V (Vlang)}}==
<syntaxhighlight lang="v (vlang)">fn main() {
mut nums := [3, 2, 4, 1, 6, 7, 5, 0]
nums.sort()
println(nums)
}</langsyntaxhighlight>
 
{{out}}
Line 2,613 ⟶ 2,671:
 
=={{header|WDTE}}==
<langsyntaxhighlight WDTElang="wdte">let a => import 'arrays';
a.sort [39; 47; 40; 53; 14; 23; 88; 52; 78; 62; 41; 92; 88; 66; 5; 40] < -- io.writeln io.stdout;</langsyntaxhighlight>
 
=={{header|Wortel}}==
<langsyntaxhighlight lang="wortel">@sort [39 47 40 53 14 23 88 52 78 62 41 92 88 66 5 40]</langsyntaxhighlight>
 
=={{header|Wren}}==
{{libheader|Wren-sort}}
<langsyntaxhighlight ecmascriptlang="wren">import "./sort" for Sort
 
var a = [7, 10, 2, 4, 6, 1, 8, 3, 9, 5]
Sort.quick(a)
System.print(a)</langsyntaxhighlight>
 
{{out}}
Line 2,633 ⟶ 2,691:
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\codes; \intrinsic 'code' declarations
 
proc SSort(A, N); \Shell sort array in ascending order
Line 2,659 ⟶ 2,717:
for I:= 0 to 10-1 do [IntOut(0, A(I)); ChOut(0, ^ )];
CrLf(0);
]</langsyntaxhighlight>
 
Output:
Line 2,667 ⟶ 2,725:
 
=={{header|Yabasic}}==
<langsyntaxhighlight Yabasiclang="yabasic">export sub shell_sort(x())
// Shell sort based on insertion sort
 
Line 2,722 ⟶ 2,780:
next n
 
end if</langsyntaxhighlight>
 
=={{header|Yorick}}==
In Yorick, ''sort'' returns an index list into the array that will put it in sorted order.
<langsyntaxhighlight lang="yorick">
nums = [2,4,3,1,2];
nums = nums(sort(nums));
</syntaxhighlight>
</lang>
 
=={{header|zkl}}==
In place sorting read/write list:
<langsyntaxhighlight lang="zkl">a:=L(4,5,2,6); a.sort(); a.println() //--> L(2,4,5,6)</langsyntaxhighlight>
Sort a read only list:
<langsyntaxhighlight lang="zkl">a:=T(4,5,2,6); b:=a.sort();
b.println(); //--> L(2,4,5,6)
a.println(); //--> L(4,5,2,6)</langsyntaxhighlight>
 
=={{header|Zoea}}==
<syntaxhighlight lang="zoea">
<lang Zoea>
program: sort_integer_array
input: [2,4,3,1]
output: [1,2,3,4]
</syntaxhighlight>
</lang>
 
=={{header|Zoea Visual}}==
9,476

edits