algorithms
This is an old revision of the document!
Table of Contents
Algorithms
A small section about some algorithms I collected and wrote.
Sorting
Heap Sort
package ch.ethz.da.vorlesung; /** * Heap sort according to lecture. * * @author Moritz Hoffmann * */ public class Heapsort { private final int[] data; public Heapsort(int[] data) { this.data = data; } public void sort() { final int length = data.length; for (int i = length / 2; i >= 0; i--) { reorder(i, length); } for (int i = data.length - 1; i > 0;) { int z = data[0]; data[0] = data[i]; data[i] = z; reorder(0, --i); } } private void reorder(int i, int length) { int j = i << 1; while (true) { j = i << 1; if (j >= length) { return; } if (data[j + 1] > data[j]) { j++; } if (data[i] < data[j]) { int z = data[i]; data[i] = data[j]; data[j] = z; i = j; } else return; } } }
algorithms.1236369719.txt.gz · Last modified: 2009/03/06 21:01 by moritz