Suche
Suche Menü

Lösung Array-Sort

Ein Lösungsvorschlag zur Aufgabe Array-Sort.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

/*
	Sortieren eines int-Arrays
	
	@author: www.c-howto.de
	@param *x: Zeiger auf int-Array
	@param size: Groesse des Arrays
*/
void arraySort(int *x, int size) {
	int i, temp, minIndex;
	for(i=0; i<size-1; i++) {
		minIndex = arrayMinIndex(x, i, size);
		if(i != minIndex) {
		temp = x[i];
		x[i] = x[minIndex];
		x[minIndex] = temp;
		}
	}
}

/*
	Ermittle Index des Minimum-Wertes eines int-Arrays
	beginnend ab start bis zum Ende des Arrays
	
	@author: www.c-howto.de
	@param *x: Zeiger auf int-Array
	@param start: Startposition, ab der nach Minimum gesucht werden soll
	@param size: Groesse des Arrays
*/
int arrayMinIndex(int *x, int start, int size) {
	int minIndex=start, i;
	for(i=start; i<size; i++) {
		if(x[i] < x[minIndex]) {
			minIndex = i;
		}
	}
	return minIndex;
}



void fillArray(int *x,int rows, int cols) {
	srand(time(NULL));
	int c=1, i, j;
	for(i=0; i<rows; i++) {
		for(j=0; j<cols; j++) {		
		*(x+(i*cols)+j) = rand() % 20;
		c++;
		}
	}
}

void printArray(int *x, int rows, int cols) {
	int i, j;
	printf("\n\n");
	for(i=0; i<rows; i++) {
		for(j=0; j<cols; j++) {
			printf(" %d",*(x+(i*cols)+j));
		}
		printf("\n");
	}
}


int  main() {
	// Test
	int a[5];
	fillArray(&a[0], 1, 5);
	printArray(&a[0], 1, 5);
	arraySort(&a[0], 5);
	printArray(&a[0], 1, 5);
	
	
	return 0;
}