September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
|
|
@ -0,0 +1,44 @@
|
|||
function siftup(a, i) {
|
||||
k = i
|
||||
while (k > 1) {
|
||||
p = floor(k/2)
|
||||
if (a[k] > a[p]) {
|
||||
s = a[p]
|
||||
a[p] = a[k]
|
||||
a[k] = s
|
||||
k = p
|
||||
}
|
||||
else break
|
||||
}
|
||||
}
|
||||
|
||||
function siftdown(a, i) {
|
||||
k = 1
|
||||
while (1) {
|
||||
l = k+k
|
||||
if (l > i) break
|
||||
if (l+1 <= i) {
|
||||
if (a[l+1] > a[l]) l++
|
||||
}
|
||||
if (a[k] < a[l]) {
|
||||
s = a[k]
|
||||
a[k] = a[l]
|
||||
a[l] = s
|
||||
k = l
|
||||
}
|
||||
else break
|
||||
}
|
||||
}
|
||||
|
||||
function heapsort(a) {
|
||||
n = length(a)
|
||||
for (i = 2; i <= n; i++) {
|
||||
siftup(a, i)
|
||||
}
|
||||
for (i = n; i >= 2; i--) {
|
||||
s = a[i]
|
||||
a[i] = a[1]
|
||||
a[1] = s
|
||||
siftdown(a, i-1)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue