Language: JavaScript
Bubblesort V1 November 2009
1: /************************* 2: * bubble-sort * 3: * in hamster imperativ * 4: * by jan langer * 5: *************************/ 6: 7: // variablen 8: int momfeld=0; // anzahl körner momentanes feld 9: int nextfeld=0; // anzahl körner folge feld 10: int run=0; // anzahl von vertauschten feldern für den aktuellen durchgang 11: boolean sortiert=false; // ist die reihe sortiert ? false=nein, true=ja 12: int reihebreite; // die breite der reihe 13: int bigkachel; // die kachel mit den meisten körnern 14: 15: 16: void drehUm() { 17: linksUm(); 18: linksUm(); 19: } 20: 21: 22: void rechtsUm() { 23: drehUm(); 24: linksUm(); 25: } 26: 27: //zaehlen der koerner auf kacheln 28: void zaehlen(int aufgabe) { 29: if(aufgabe==1) { 30: if(bigkachel>0) { 31: momfeld=bigkachel; 32: return; 33: } 34: else 35: momfeld=0; 36: if(!kornDa()) 37: return; 38: while(kornDa()) { 39: nimm(); 40: momfeld++; 41: } 42: for(int x=0;x!=momfeld;x++) 43: gib(); 44: } 45: else { 46: nextfeld=0; 47: if(!kornDa()) 48: return; 49: while(kornDa()) { 50: nimm(); 51: nextfeld++; 52: } 53: for(int x=0;x!=nextfeld;x++) 54: gib(); 55: } 56: } 57: 58: // tauschen der kacheln 59: void tauschen() { 60: if(momfeld>nextfeld) { 61: run++; 62: bigkachel=momfeld; 63: while(kornDa()) 64: nimm(); 65: vor(); 66: while(kornDa()) 67: nimm(); 68: for(int x=0;x!=momfeld;x++) 69: gib(); 70: drehUm(); 71: vor(); 72: for(int x=0;x!=nextfeld;x++) 73: gib(); 74: drehUm(); 75: } 76: else 77: bigkachel=0; 78: } 79: 80: // die reihen verarbeiten 81: void proceed() { 82: for(int x=0;x<reihebreite;x++) { 83: zaehlen(1); 84: vor(); 85: zaehlen(2); 86: drehUm(); 87: vor(); 88: drehUm(); 89: tauschen(); 90: vor(); 91: } 92: reihebreite--; 93: drehUm(); 94: bigkachel=0; 95: while(vornFrei()) 96: vor(); 97: drehUm(); 98: if (run==0) 99: sortiert=true; 100: else 101: run=0; 102: } 103: 104: //gibt die breite der reihe wieder 105: int breite() { 106: int breite=0; 107: while(vornFrei()) { 108: vor(); 109: breite++; 110: } 111: drehUm(); 112: while(vornFrei()) 113: vor(); 114: drehUm(); 115: return breite; 116: } 117: 118: 119: boolean rechtsFrei() { 120: rechtsUm(); 121: if (vornFrei()) { 122: linksUm(); 123: return true; 124: } 125: else { 126: linksUm(); 127: return false; 128: } 129: } 130: 131: //main... 132: void main() { 133: while(rechtsFrei()) { 134: reihebreite=breite(); 135: while(sortiert==false) 136: proceed(); 137: sortiert=false; 138: rechtsUm(); 139: vor(); 140: linksUm(); 141: } 142: reihebreite=breite(); 143: while(sortiert==false) 144: proceed(); 145: }
Description:
Bubblesort Hamster ohne Array
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

