Koordinaten sortieren!
-
-
Kannst dir vlt auch Sortieren mittels Fachverteilung ansehen
-
Also hab nach qsort() gegoogelt, hab auch was gefunden, aber irgendwie verstehe ich das nicht!
Kann man das auch anders sortieren???
-
Bonafide schrieb:
Also hab nach qsort() gegoogelt, hab auch was gefunden, aber irgendwie verstehe ich das nicht!
Naja, nach 16 Minuten ist es auch schwer qsort() zu verstehen.
Bonafide schrieb:
Kann man das auch anders sortieren???
Sicher. Man kann seinen eigenen Sortieralgorithmus implementieren. Ob das einfacher oder schwerer für einen Anfänger ist kann ich aber nicht beurteilen. qsort() ist fertig und gut. Die Anwendung ist nicht trivial, aber lehrreich und sinnvoll. Andererseits wäre auch die Implementierung eines anderen Algorithmus lehrreich...
-
Tim schrieb:
Bonafide schrieb:
Also hab nach qsort() gegoogelt, hab auch was gefunden, aber irgendwie verstehe ich das nicht!
Naja, nach 16 Minuten ist es auch schwer qsort() zu verstehen.
Hast Recht hab mir wenig Zeit gelassen.
Aber habe jetzt ein anderes Sortierungsverfahren ''gefunde'' und schon ein bishen verstanden. Ich rede über Bubblesort. Hab das auch bei meinem Fall ausprobiert aber komme nicht weiter, deshalb bitte wieder um HILFE
Hier der Code(Beispiel):void bubble_sort(int *array, int elemente) { int i,temp; while(elemente--) for(i = 1; i <= elemente; i++) if(array[i-1] > array[i]) { temp=array[i]; array[i]=array[i-1]; array[i-1]=temp; } } int main(void){ int Array_x[]={2,5,6,3,4,5,6,12}; int Array_y[]={3,6,6,3,5,6,5,9}; int elements_x=sizeof(Array_x)/sizeof(int); int elements_y=sizeof(Array_y)/sizeof(int); int i; bubble_sort(Array_y,elements_y); }
Also hier sortiert er zwar die y-Werte, weiss aber nicht wo ich den Code umändern muss, damit er auch die x-Werte sortiert(wenn die y-Werte gleich sind).
Helft mir Bitte!!!
-
Wo sind die Strukturen denn abgeblieben?
-
void bubble_sort(int *array
Das kann ja auch nicht gehen, wenn du nur EIN array
(x-Werte ODER y-Werte) sortierst. Dadurch würde der
Zusammenhang der x- und y- Werte flöten gehen.Du brauchst eine andere Daten-Struktur
struct { int x; int y; }
und ein array dieser structs sortieren.
Dein vergleich sieht dann so aus
if (array[i].y > array[i+1].y || (array[i].y == array[i+1].y && array[i].x > array[i+1].x)) { // austauschen }
-
Leroy42 schrieb:
und ein array dieser structs sortieren.
Dein vergleich sieht dann so aus
if (array[i].y > array[i+1].y || (array[i].y == array[i+1].y && array[i].x > array[i+1].x)) { // austauschen }
Verstehe ich irgendwie nicht richtig. Könntest du mir das BITTE besser erklären?
-
Ich meine wie kann ich eine Struktur mit einem Array verbinden??
-
du solltest dir vlt nochmal n tutorial machen oder so
eine struktur ist einfach ein von dir erstellter zusammengesetzter datentyp:
struct myStructure{ int id; char Name[128]; };
und du kannst somit auch arrays deines datentyps erstellen:
myStructure array[10];
Wie du das für deinen Algo machen musst musst du dir ausdenken
z.b.:
struct point{ int x; int y; }; point pointlist[10]; // 10 Punkte pointlist[0].x=5; // weist dem x wert des ersten elements (also dem ersten Punkt) den wert 5 zu
-
Ist das denn richtig???
Hier der Code:struct Point{ int x; int y; }; Point array[4]; array[0].x=2 //Zum Beispiel array[0].y=1 array[1].x=4 array[1].y=1 array[2].x=123 array[2].y=4 array[3].x=12 array[3].y=1 int i,j; int temp; int temp1; int N=4; while(N--) for(i=0;i<=4;i++){ if(array[i].y>array[i+1].y){ temp=array[i+1].y; array[i+1].y=array[i].y; array[i].y=temp; } if(array[i].y==array[i+1].y && array[i].x>array[i+1].x){ temp1=array[i+1].x; array[i+1].x=array[i].x; array[i].x=temp1; } }
-
habs nicht getestet aber sieht gut aus