From a46c88b794108d7688c686cd96f2b5f350523411 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Thu, 25 Apr 2019 11:25:50 +0200 Subject: [PATCH] Add selection sort --- SelectionSort.nim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 SelectionSort.nim diff --git a/SelectionSort.nim b/SelectionSort.nim new file mode 100644 index 0000000..425c0d8 --- /dev/null +++ b/SelectionSort.nim @@ -0,0 +1,16 @@ +proc selectionSort(list:seq[int]):seq[int] = + result = list + + proc indexOfMin(list:seq[int], startIndex:int): int = + result = startIndex + for i in startIndex .. list.high: + if list[i] < list[result]: + result = i + + for i in result.low .. result.high: + swap(result[i], result[result.indexOfMin(i)]) + +when isMainModule: + let + seq1 = @[1, 3, 2, 56, 2, 1, 32, 45, 23, 41, 6, 47, 212, 32, 6, 98, 54, 457, 37, 4] + echo seq1.selectionSort