Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package AundD789;
- public class HeapSort {
- // Versickere das Element mit Index zuversickern in dem Teilfeld von Index
- // links bis einschließlich Index rechts
- public static void versickere(int[] array, int zuversickern, int links, int rechts) {
- int i = zuversickern;
- int x = array[i];
- // int j=0;
- boolean verE = true;
- while (2 * i + 1 <= rechts) {
- int j = (2 * i) + 1;
- if (j + 1 <= rechts && array[j] < array[j + 1]) {
- j = j + 1;
- }
- if (x < array[j]) {
- array[i] = array[j];
- i = j;
- } else {
- array[i] = x;
- i = rechts;
- verE = false;
- }
- }
- if (verE) {
- array[i] = x;
- }
- }
- public static void heapsort(int[] array, int links, int rechts) {
- for (int i = ((links + rechts) / 2); i >= 0; i--) {
- versickere(array, i, links, rechts);
- }
- int k = 1;//zähler
- for (int i = (rechts+links) ; i >= 0; i--) {
- int temp = array[0];
- array[0] = array[i];
- array[i] = temp;
- versickere(array, links, i - 1, rechts - k);
- k++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement