all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
|
|
@ -0,0 +1,17 @@
|
|||
List do(
|
||||
insertionSortInPlace := method(
|
||||
for(j, 1, size - 1,
|
||||
key := at(j)
|
||||
i := j - 1
|
||||
|
||||
while(i >= 0 and at(i) > key,
|
||||
atPut(i + 1, at(i))
|
||||
i = i - 1
|
||||
)
|
||||
atPut(i + 1, key)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
lst := list(7, 6, 5, 9, 8, 4, 3, 1, 2, 0)
|
||||
lst insertionSortInPlace println # ==> list(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
List do(
|
||||
insertionSortInPlace := method(
|
||||
# In fact, we could've done slice(1, size - 1) foreach(...)
|
||||
# but creating a new list in memory can only make it worse.
|
||||
foreach(idx, key,
|
||||
newidx := slice(0, idx) map(x, x > key) indexOf(true)
|
||||
if(newidx, insertAt(removeAt(idx), newidx))
|
||||
)
|
||||
self)
|
||||
)
|
||||
|
||||
lst := list(7, 6, 5, 9, 8, 4, 3, 1, 2, 0)
|
||||
lst insertionSortInPlace println # ==> list(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
||||
Loading…
Add table
Add a link
Reference in a new issue