rendered paste body/* domacak.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGHT 100
void merge(int a[], int b[], int levy, int pravy, int poslPravy) {
int poslLevy = pravy-1;
int i = levy;
int prvniLevy = levy;
while (levy<=poslLevy && pravy<=poslPravy)
b[i++] = (a[levy]<a[pravy])? a[levy++] :a [pravy++];
while (levy<=poslLevy) b[i++] = a[levy++];
while (pravy<=poslPravy) b[i++] = a[pravy++];
}
int min(int x, int y) {
if (x<y) return x;
else return y;
}
void mergeSort(int a[], int n) {
int *pom = (int*)malloc(n*sizeof(int)),
*odkud = a, *kam = pom;
int delkaUseku = 1;
int posl = n-1, i;
while (delkaUseku<n) {
int levy = 0;
while (levy<=posl) {
int pravy = levy+delkaUseku;
merge(odkud, kam, levy, min(pravy, n), min(pravy+delkaUseku-1, posl));
levy = levy+2*delkaUseku;
}
delkaUseku = 2*delkaUseku;
int *p = odkud; odkud = kam; kam = p;
}
if (odkud!=a)
for (i=0; i<n; i++) a[i] = pom[i];
}
int main(void) {
char retezecX[MAX_LENGHT], retezecY[MAX_LENGHT], poleX[MAX_LENGHT], poleY[MAX_LENGHT];
char retezecXser[MAX_LENGHT], retezecYser[MAX_LENGHT], a[MAX_LENGHT];
int prvni, druhy;
char jmenoSouboruX[] = "X.txt";
char jmenoSouboruY[] = "Y.txt";
char jmenoSouboruXser[] = "Xser.txt";
char jmenoSouboruYser[] = "Yser.txt";
/* čtení */
FILE *souborX;
souborX = fopen(jmenoSouboruX, "r");
fscanf(souborX, "%s", retezecX);
FILE *souborY;
souborY = fopen(jmenoSouboruY, "r");
fscanf(souborY, "%s", retezecY);
/* seřazeni */
prvni = strlen(retezecX);
druhy = strlen(retezecY);
mergeSort(retezecX, prvni);
mergeSort(retezeY, druhy);
/* výpis */
printf("Mnozina X: %s \n", retezecX); /* měl bych vypsat řetězec seřazenej tendle je neseřazenej*/
printf("Mnozina Y: %s \n", retezecY);
fclose(souborX);
fclose(souborY);
fclose(souborXser);
fclose(souborYser);
system("PAUSE");
return 0;
}