StringBufferInputStream

UPDATE: siehe auch den neuen Post StrinInputStream StringOutputStream der einige Schwächen dieser Lösung hier beseitigt.

Da programmiert man vor sich hin und vor sich hin, man will ein Java Objekt, oder besser gesagt ein Bean in ein XML-Format bringen (bzw. serialisieren).

Es gibt ja diese wunderbare Library die auch Java RMI verwendet, aber leider kann die nur in Streams schreiben, bzw. von Streams lesen.

Will man aber das XML (warum auch immer) als String haben, kann man den Umweg über ein File gehen – das ist eher doof – oder sich einen StringBuffer-Stream schreiben.

Hört sich vielleicht ein wenig kompliziert an, aber eigentlich sind die Java Streams recht einfache Konstrukte.

Da wäre diese zwei Streamchen zu erwähnen:

Will man nun eigene Streams schreiben, implementiert man einfach seine eigene Java Klasse die von dem jeweiligen Stream erbt.

So sieht dann mein StringBufferInputStream aus:

Read more

Teamarbeit

Arbeiten in Großen Teams

1. Entscheiden und Realisiern unter Einbindung vieler Personen

Die Willensbildung in Organisationen, und im engeren Sinne die Entscheidungs- und die Konsensfindung, ist längst nicht mehr eine Frage weniger Personen. In vielen Situationen ist die Einbindung vieler Personen in wesentliche Entscheidungen notwendig. Grund dafür ist die fortschreitende Spezialisierung und damit die Zunahme von Abhängigkeiten, nicht nur in Organisationen, sonderen zunehmend auch zwischen Organisationen.

1.1 Zunehmende Arbeitsteilung führt zu Reduktionismus und Umsetzungsschwäche

Spezialisierung hat den Vorteil tieferer Einblicke und präziseren Wissens innerhalb eines Aktivitätsfeldes. Sie führt zu Fokussierung und Konzentration und wirkt dadurch Kompetenz- und Produktivitätsteigernd. Sie bringt aber die Gefahr der reduktionistischen Betrachtung mit sich. Ein Spezialist sieht die Welt eben in der speziellen Optik seines Fachgebietes und beurteilt sie danach. Problemlösungen sind aber nicht immer nur in einem Fachgebiet zu finden, vielmehr ist auch der Beitrag von Fachleuten aus anderen Bereichen notwendig um eine Situation in alles Aspekten zu erfassen und dann auch erfolgreich zu bewältigen.

Read more

Quick Sort

Und weiter mit den Sortierübungen, jetzt der Quicksort in C

 
#include 

void quick_sort(int *liste, int links, int rechts);
void output(int *liste, int start, int ende);

int main(int argc, char* argv[])
{
	
	int a[] = {15, 9, 12, 1, 6, 13, 3, 4, 7, 10, 8, 11, 2, 5, 14, 16};

	printf("+Start:n");
	quick_sort(a,0,15);
	printf("+Ende:n");
	output(a,0,15);


	return 0;
}
void output(int *liste, int start, int ende)
{
	int i=0;

	for(i=start; i<=ende; i++)
	{
		printf("[%2d] ",liste[i]);
	}
	printf("n");
}


void quick_sort(int *liste, int in_links, int in_rechts)
{
	int links=in_links;
	int rechts=in_rechts;
	int mitte=liste[(links+rechts)/2];
	int temp=0;
	printf("+QSort: Von %d bis %d - Teile bei [%2d]:n  ",links,rechts, mitte);
	output(liste,links,rechts);
	do
	{
		while (liste[links] < mitte) links++;
		while (liste[rechts] > mitte) rechts--;
		if (links <= rechts)
		{
			printf("  Tausche [%2d] <--> [%2d]n  ", liste[links], liste[rechts]);
			temp = liste[links];
			liste[links] = liste[rechts];
			liste[rechts] = temp;
			output(liste,in_links,in_rechts);
			links++;
			rechts--;
		}
	} while (links <= rechts);
	if (rechts > in_links) quick_sort(liste, in_links, rechts);
	if (links < in_rechts) quick_sort(liste, links, in_rechts);
}

Bubble Sort

Eine einfache Implementierung des Bubble Sort Algorithmus in C

#include 
#define MAX 8

void bubble_sort(int *liste);
void output(int *liste);

int main(int argc, char* argv[])
{
	
	int a[] = {15, 9, 12, 1, 6, 13, 3, 4};

	output(a);
	bubble_sort(a);

	return 0;
}
void output(int *liste)
{
	int i=0;

	for(i=0; i=i; j--)
		{
			if (liste[j-1] > liste[j])
			{
				printf(" Tausche: [%2d] > [%2d] \n",liste[j-1],liste[j]); 
				x = liste[j-1];
				liste[j-1] = liste[j];
				liste[j] = x;
				printf(" "); 
				output(liste);
			}
			else
			{
				//printf(" Vergleich: [%2d] < [%2d] \n",liste[j-1],liste[j]);
			}
		}

	}

}