Sorting algorithms/Selection sort: Difference between revisions
Sorting algorithms/Selection sort (view source)
Revision as of 12:20, 8 February 2024
, 3 months ago→{{header|Wren}}: Minor tidy
(add RPL) |
m (→{{header|Wren}}: Minor tidy) |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 867:
460 END
</syntaxhighlight>
==={{header|IS-BASIC}}===▼
<syntaxhighlight lang="is-basic">100 PROGRAM "SelecSrt.bas"▼
110 RANDOMIZE ▼
120 NUMERIC ARRAY(-5 TO 14)▼
130 CALL INIT(ARRAY)▼
140 CALL WRITE(ARRAY)▼
150 CALL SELECTIONSORT(ARRAY)▼
160 CALL WRITE(ARRAY)▼
170 DEF INIT(REF A)▼
180 FOR I=LBOUND(A) TO UBOUND(A)▼
190 LET A(I)=RND(98)+1▼
200 NEXT ▼
210 END DEF ▼
220 DEF WRITE(REF A)▼
230 FOR I=LBOUND(A) TO UBOUND(A)▼
240 PRINT A(I);▼
250 NEXT ▼
260 PRINT ▼
270 END DEF ▼
280 DEF SELECTIONSORT(REF A)▼
290 FOR I=LBOUND(A) TO UBOUND(A)-1▼
300 LET MN=A(I):LET INDEX=I▼
310 FOR J=I+1 TO UBOUND(A)▼
320 IF MN>A(J) THEN LET MN=A(J):LET INDEX=J▼
330 NEXT ▼
340 LET A(INDEX)=A(I):LET A(I)=MN▼
350 NEXT ▼
360 END DEF</syntaxhighlight>▼
=={{header|BCPL}}==
Line 1,338 ⟶ 1,367:
<syntaxhighlight lang="text">
for i = 1 to len d[] - 1
for j = i + 1 to len d[]
if d[j] < d[i]
swap d[j] d[i]
.
.
data[] = [ 29 4 72 44 55 26 27 77 92 5 ]
print data[]
</syntaxhighlight>
Line 1,521 ⟶ 1,550:
=={{header|Elena}}==
ELENA
<syntaxhighlight lang="elena">import extensions;
import system'routines;
Line 1,531 ⟶ 1,560:
var copy := self.clone();
for(int i := 0
{
int k := i;
for(int j := i + 1
{
if (copy[j] < copy[k])
Line 1,665 ⟶ 1,694:
let min, rest =
List.fold (fun (min,acc) x ->
if
else (min,
(x, []) xs
in min::ssort rest
Line 2,027 ⟶ 2,056:
l := list(-1, 4, 2, -9)
l selectionSortInPlace println # ==> list(-9, -1, 2, 4)</syntaxhighlight>
▲=={{header|IS-BASIC}}==
▲<syntaxhighlight lang="is-basic">100 PROGRAM "SelecSrt.bas"
▲110 RANDOMIZE
▲120 NUMERIC ARRAY(-5 TO 14)
▲130 CALL INIT(ARRAY)
▲140 CALL WRITE(ARRAY)
▲150 CALL SELECTIONSORT(ARRAY)
▲160 CALL WRITE(ARRAY)
▲170 DEF INIT(REF A)
▲180 FOR I=LBOUND(A) TO UBOUND(A)
▲190 LET A(I)=RND(98)+1
▲200 NEXT
▲210 END DEF
▲220 DEF WRITE(REF A)
▲230 FOR I=LBOUND(A) TO UBOUND(A)
▲240 PRINT A(I);
▲250 NEXT
▲260 PRINT
▲270 END DEF
▲280 DEF SELECTIONSORT(REF A)
▲290 FOR I=LBOUND(A) TO UBOUND(A)-1
▲300 LET MN=A(I):LET INDEX=I
▲310 FOR J=I+1 TO UBOUND(A)
▲320 IF MN>A(J) THEN LET MN=A(J):LET INDEX=J
▲330 NEXT
▲340 LET A(INDEX)=A(I):LET A(I)=MN
▲350 NEXT
▲360 END DEF</syntaxhighlight>
=={{header|J}}==
Line 3,165:
return list
</syntaxhighlight>
≪ len 1 FOR n ▼
n ROLLD ▼
▲ ≫ END
=={{header|Ruby}}==
Line 3,301 ⟶ 3,288:
selection_sort(&mut array);
println!(" The sorted array is {:?}", array);
}
</syntaxhighlight>Another way:<syntaxhighlight lang="rust">
fn selection_sort<T: std::cmp::PartialOrd>(arr: &mut [T]) {
for i in 0 .. arr.len() {
let unsorted = &mut arr[i..];
let mut unsorted_min: usize = 0;
for (j, entry) in unsorted.iter().enumerate() {
if *entry < unsorted[unsorted_min] {
}
unsorted.swap(0, unsorted_min);
}
}
</syntaxhighlight>
Line 3,610:
=={{header|Wren}}==
{{trans|Go}}
<syntaxhighlight lang="
var last = a.count - 1
for (i in 0...last) {
Line 3,627:
}
var
for (a in
System.print("Before: %(a)")
selectionSort.call(a)
Line 3,646:
Alternatively we can just call a library method.
{{libheader|Wren-sort}}
<syntaxhighlight lang="
var
for (a in
System.print("Before: %(a)")
Sort.selection(a)
|