aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se')
-rw-r--r--Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se46
1 files changed, 0 insertions, 46 deletions
diff --git a/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se b/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se
deleted file mode 100644
index 0e603a238..000000000
--- a/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/schellingcoin/quicksort_pairs.se
+++ /dev/null
@@ -1,46 +0,0 @@
-# Quicksort pairs
-# eg. input of the form [ 30, 1, 90, 2, 70, 3, 50, 4]
-# outputs [ 30, 1, 50, 4, 70, 3, 90, 2 ]
-#
-# Note: this can be used as a generalized sorting algorithm:
-# map every object to [ key, ref ] where `ref` is the index
-# in memory to all of the properties and `key` is the key to
-# sort by
-
-
-def kall():
- argcount = ~calldatasize() / 64
- if argcount == 1:
- return([~calldataload(1), ~calldataload(33)], 2)
-
- args = array(argcount * 2)
- ~calldatacopy(args, 1, argcount * 64)
- low = array(argcount * 2)
- lsz = 0
- high = array(argcount * 2)
- hsz = 0
- i = 2
- while i < argcount * 2:
- if args[i] < args[0]:
- low[lsz] = args[i]
- low[lsz + 1] = args[i + 1]
- lsz += 2
- else:
- high[hsz] = args[i]
- high[hsz + 1] = args[i + 1]
- hsz += 2
- i = i + 2
- low = self.kall(data=low, datasz=lsz, outsz=lsz)
- high = self.kall(data=high, datasz=hsz, outsz=hsz)
- o = array(argcount * 2)
- i = 0
- while i < lsz:
- o[i] = low[i]
- i += 1
- o[lsz] = args[0]
- o[lsz + 1] = args[1]
- j = 0
- while j < hsz:
- o[lsz + 2 + j] = high[j]
- j += 1
- return(o, argcount * 2)