CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: JavaScript

Bubblesort V1 November 2009

167 Views
Copy Code Show/Hide Line Numbers
   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:  }
by faithz
  February 26, 2010 @ 8:21am
Description:
Bubblesort Hamster ohne Array

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate