/* Ylopoihsh insertion sort */ /* Diavazei arithmous kai apo arxeio */ /* kai apo to plhktrologio */ /* Sto arxeio prepei na einai se mia */ /* grammi to plithos twn arithmwn */ /* gia sortarisma kai sthn epomenh oi */ /* arithmoi */ /* Spyros A. Hadjichristodoulou */ /* 03104617, 7o Eksamino */ #include #include int * insertionSort(int arrayData[], int arraySize) { int a, b, temp; for (a = 1; a < arraySize; a++) { // ekswteriko for loop gia ola ta stoixeia b = a; while ((arrayData[b] < arrayData[b-1]) && (b >0)) { //while loop gia swaps temp = arrayData[b-1]; // ektelesi swap arrayData[b-1] = arrayData[b]; arrayData[b] = temp; b--; } } return arrayData; } int main(int argv, char **argc) { char ch; int size; int i; FILE *finsert; if (argv == 2) { // an dwsoume kai orisma stin klisi tou programmatos diavazei ap'to arxeio finsert = fopen(argc[1], "r"); if (finsert == NULL) { printf("Can't read %s", argc[1]); return 1; } else { while (!feof(finsert)) { // diavasma apo arxeio kai ektypwsh sortarismenwn akolouthiwn mexri FEOF fscanf(finsert, "%d", &size); int array[size]; for (i = 0; i < size; i++) fscanf(finsert, "%d", &array[i]); int *array2 = insertionSort(array, size); for (i = 0; i < size; i++) printf("%d", array[i]); printf("\n"); } } } else { // diavasma apo pliktrologio kai ektypwsh sortarismenis akolouthias printf("Parakalw eisagete plithos arithmwn pou tha sortaristoun\n"); scanf("%d", &size); int array[size]; printf("Parakalw eisagete tous %d arithmous\n", size); for (i = 0; i < size; i++ ) scanf("%d", &array[i]); int *array2 = insertionSort(array, size); for (i = 0; i < size; i++) printf("%d ", array[i]); } }