Sorting algorithms/Insertion sort: Difference between revisions
Content added Content deleted
m (→{{header|AppleScript}}: Tidied.) |
|||
Line 2,410: | Line 2,410: | ||
<pre>Unsorted: [5, 2, 3, 17, 12, 1, 8, 3, 4, 9, 7] |
<pre>Unsorted: [5, 2, 3, 17, 12, 1, 8, 3, 4, 9, 7] |
||
Sorted: [1, 2, 3, 3, 4, 5, 7, 8, 9, 12, 17]</pre> |
Sorted: [1, 2, 3, 3, 4, 5, 7, 8, 9, 12, 17]</pre> |
||
=={{header|Ksh}}== |
|||
<lang ksh>#!/bin/ksh |
|||
# An insertion sort in ksh |
|||
# # Variables: |
|||
# |
|||
typeset -a arr=( 4 65 2 -31 0 99 2 83 782 1 ) |
|||
# # Functions: |
|||
# |
|||
# # Function _insertionSort(array) - Insersion sort of array of integers |
|||
# |
|||
function _insertionSort { |
|||
typeset _arr ; nameref _arr="$1" |
|||
typeset _i _j _val ; integer _i _j _val |
|||
for (( _i=1; _i<${#_arr[*]}; _i++ )); do |
|||
_val=${_arr[_i]} |
|||
(( _j = _i - 1 )) |
|||
while (( _j>=0 && _arr[_j]>_val )); do |
|||
_arr[_j+1]=${_arr[_j]} |
|||
(( _j-- )) |
|||
done |
|||
_arr[_j+1]=${_val} |
|||
done |
|||
} |
|||
###### |
|||
# main # |
|||
###### |
|||
_insertionSort arr |
|||
printf "%s" "( " |
|||
for (( i=0; i<${#arr[*]}; i++ )); do |
|||
printf "%d " ${arr[i]} |
|||
done |
|||
printf "%s\n" " )"</lang> |
|||
{{out}} |
|||
( -31 0 1 2 2 4 65 83 99 782 ) |
|||
=={{header|Lambdatalk}}== |
=={{header|Lambdatalk}}== |