This weekend I'm going to cover some basics in computer programming. They will be from the Algorithms and Data Structures book.
Merge-Sort(A,p,r)
if (p < r)
then q <- (p + r) / 2
Merge-Sort(A, p, q)
Merge-Sort(A, q+1, r)
Merge(A, p, q, r)
Quick-Sort(A,p,r)
if p < r
then q <- Partition(A, p, r)
Quick-sort(A, p, q - 1)
Quick-sort(A, q+1, r)
Partition (A, p, r)
x <- A[r]
i <- p - 1
for j <- p to r - 1
do if A[j] <= x
then i = i + 1
exchange A[i] = A[j]
exchange A[i + 1] <-> A[r]
return i + 1
Bubble-Sort(A)
for i = 1 to length[A]
do for j = length[A] down to i + 1
do if A[j] < A[j - 1]
then exchange A[j] -> A[j - 1]
Tree-Insert(T, z)
y <- nil
x <- root[T]
while x != NIL
do y = x
if key[z] < key[x]
then x <- left[x]
else x <- right[x]
p[z] = y
if ( y == NIL)
then root[T] <- z
else if key[z] < key[y]
then left[y] <- z
else right[y] <- z
Tree-Delete(T,z)
// Case 1 z has no children
// Case 2 z has one child => splice out
// Case 3 z has two children => substitute z
with the successor that has no left child
if left[z] = NIL or right[z] = NIL
then y = z
else y = Tree-Successor(z)
if left[y] <> NIL
then x <- left[y]
else x <- right [y]
if x <> NIL
then p[x] <- p[y]
if p[y] = NIL
then root[T] = x
else if y = left[p[y]]
then left[p[y]] = x
else right[p[y]] = x
if y <> z
then key[z] <- key[y]
copy y's satellite data into z
return y
Merge-Sort(A,p,r)
if (p < r)
then q <- (p + r) / 2
Merge-Sort(A, p, q)
Merge-Sort(A, q+1, r)
Merge(A, p, q, r)
Quick-Sort(A,p,r)
if p < r
then q <- Partition(A, p, r)
Quick-sort(A, p, q - 1)
Quick-sort(A, q+1, r)
Partition (A, p, r)
x <- A[r]
i <- p - 1
for j <- p to r - 1
do if A[j] <= x
then i = i + 1
exchange A[i] = A[j]
exchange A[i + 1] <-> A[r]
return i + 1
Bubble-Sort(A)
for i = 1 to length[A]
do for j = length[A] down to i + 1
do if A[j] < A[j - 1]
then exchange A[j] -> A[j - 1]
Tree-Insert(T, z)
y <- nil
x <- root[T]
while x != NIL
do y = x
if key[z] < key[x]
then x <- left[x]
else x <- right[x]
p[z] = y
if ( y == NIL)
then root[T] <- z
else if key[z] < key[y]
then left[y] <- z
else right[y] <- z
Tree-Delete(T,z)
// Case 1 z has no children
// Case 2 z has one child => splice out
// Case 3 z has two children => substitute z
with the successor that has no left child
if left[z] = NIL or right[z] = NIL
then y = z
else y = Tree-Successor(z)
if left[y] <> NIL
then x <- left[y]
else x <- right [y]
if x <> NIL
then p[x] <- p[y]
if p[y] = NIL
then root[T] = x
else if y = left[p[y]]
then left[p[y]] = x
else right[p[y]] = x
if y <> z
then key[z] <- key[y]
copy y's satellite data into z
return y
No comments:
Post a Comment