Sha256: c2a05b965b31b64ab408a67c0adb9ec4ec759ea9fac3d6c006e9c28dbcd8a0a4

Contents?: true

Size: 601 Bytes

Versions: 10

Compression:

Stored size: 601 Bytes

Contents

# An in-place selection sort.
selection_sort = (list) ->
  len = list.length

  # For each item in the list.
  for i in [0...len]

    # Set the minimum to this position.
    min = i

    # Check the rest of the array to see if anything is smaller.
    min = j if list[j] < list[min] for j in [i + 1...len]

    # Swap if a smaller item has been found.
    [list[i], list[min]] = [list[min], list[i]] if i isnt min

  # The list is now sorted.
  list


# Test the function.
console.log selection_sort([3, 2, 1]).join(' ') is '1 2 3'
console.log selection_sort([9, 2, 7, 0, 1]).join(' ') is '0 1 2 7 9'

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
spade-packager-0.1.0.1 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-packager-0.1.0 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.8.1 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.7 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.6 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.5 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.4 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.3 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.2 packages/coffee-script/examples/computer_science/selection_sort.coffee
spade-0.0.1 packages/coffee-script/examples/computer_science/selection_sort.coffee