Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,100 @@
|
|||
define size = 10, point = 0, top = 0
|
||||
define high = 0, low = 0, pivot = 0
|
||||
|
||||
dim list[size]
|
||||
dim stack[size]
|
||||
|
||||
gosub fill
|
||||
gosub sort
|
||||
gosub show
|
||||
|
||||
end
|
||||
|
||||
sub fill
|
||||
|
||||
for i = 0 to size - 1
|
||||
|
||||
let list[i] = int(rnd * 100)
|
||||
|
||||
next i
|
||||
|
||||
return
|
||||
|
||||
sub sort
|
||||
|
||||
let low = 0
|
||||
let high = size - 1
|
||||
let top = -1
|
||||
|
||||
let top = top + 1
|
||||
let stack[top] = low
|
||||
let top = top + 1
|
||||
let stack[top] = high
|
||||
|
||||
do
|
||||
|
||||
if top < 0 then
|
||||
|
||||
break
|
||||
|
||||
endif
|
||||
|
||||
let high = stack[top]
|
||||
let top = top - 1
|
||||
let low = stack[top]
|
||||
let top = top - 1
|
||||
|
||||
let i = low - 1
|
||||
|
||||
for j = low to high - 1
|
||||
|
||||
if list[j] <= list[high] then
|
||||
|
||||
let i = i + 1
|
||||
let t = list[i]
|
||||
let list[i] = list[j]
|
||||
let list[j] = t
|
||||
|
||||
endif
|
||||
|
||||
next j
|
||||
|
||||
let point = i + 1
|
||||
let t = list[point]
|
||||
let list[point] = list[high]
|
||||
let list[high] = t
|
||||
let pivot = i + 1
|
||||
|
||||
if pivot - 1 > low then
|
||||
|
||||
let top = top + 1
|
||||
let stack[top] = low
|
||||
let top = top + 1
|
||||
let stack[top] = pivot - 1
|
||||
|
||||
endif
|
||||
|
||||
if pivot + 1 < high then
|
||||
|
||||
let top = top + 1
|
||||
let stack[top] = pivot + 1
|
||||
let top = top + 1
|
||||
let stack[top] = high
|
||||
|
||||
endif
|
||||
|
||||
wait
|
||||
|
||||
loop top >= 0
|
||||
|
||||
return
|
||||
|
||||
sub show
|
||||
|
||||
for i = 0 to size - 1
|
||||
|
||||
print i, ": ", list[i]
|
||||
|
||||
next i
|
||||
|
||||
return
|
||||
Loading…
Add table
Add a link
Reference in a new issue