#include #include #include #include #include #include #define filename "pinakas.txt" int menu(void); int DimiourgiaPinaka (int *pinakas); void EmfanisiPinaka(int *pinakas, int length); void saveData(int *pinakas, int length); void loadData(int *pinakas); int swap(int *x , int *y); void bubblesort (int *pin,int megethos); void insertionSort(int *pin,int megethos); void quickSort(int a[], int left, int right,int diakoptis ); int euresi (int megethos); int main(void) { int choice,*pinakas,megethos,memory,tyxaio_stoix; pinakas=(int *)malloc(1*sizeof(int)); do{ choice=menu(); switch(choice){ case 1:megethos=DimiourgiaPinaka(pinakas); break; case 2:saveData(pinakas,megethos);getch(); break; case 3:loadData(pinakas);printf("megethos:%d\n",sizeof(pinakas)); break; case 4:EmfanisiPinaka(pinakas,megethos); break; case 5:bubblesort(pinakas,megethos); break; case 6:insertionSort(pinakas,megethos);break; case 7:quickSort(pinakas,0,megethos-1,1); break; case 8:quickSort(pinakas,0,megethos-1,2); break; case 9:break; case 0:exit(0); } }while(1); free(pinakas); } int menu(void){ int choice; do{ printf("1.Dimiourgia pinaka \n"); printf("2.Apothikeusi pinaka se arxeio \n"); printf("3.Anaktisi pinaka apo arxeio \n"); printf("4.Emfanisi pinaka \n"); printf("5.Bubblesort \n"); printf("6.Insertion Sort \n"); printf("7.Quick Sort 1 \n"); printf("8.Quick Sort 2 \n"); printf("9.Quick Sort 3 \n"); printf("0.Eksodos apo tin efarmogi \n"); printf("choice: "); scanf("%d",&choice); }while (choice!=0&&choice!=1 && choice!=2 && choice!=3 && choice!=4 && choice!=5 &&choice!=6 && choice!=7 && choice!=8 && choice!=9); return choice; } int DimiourgiaPinaka (int *pinakas) { int megethos,epilogi,key=0,i; printf("Dwste to epithymito megethos tou pinaka :\n"); scanf("%d" , &megethos); realloc(pinakas,megethos * sizeof(int)); if(pinakas==NULL) printf("Den yparxei arketi mnini gia dimiourgia enos pinaka \n"); while(key==0) { printf("Patiste 1 gia Ataksinomito pinaka h 2 gia Sxedon Taksinomimeno pinaka : \n"); scanf("%d",&epilogi); if(epilogi==1) { printf("EPILOGH 1:Ataksinomitos pinakas --> to aitima sas einai se ekseliksi...\n"); srand(time(NULL)); for (i=0; ipin[j+1]) { temp = pin[j]; pin[j] = pin[j+1]; pin[j+1] = temp; } } } printf("Ta stoixeia tou pianka meta tin taxinomisi einai:\n"); for(i=0; i0)&&(pin[j-1]>temp)) { pin[j] = pin[j-1]; j=j-1; pin[j]=temp; } } printf("Ta stoixeia tou pianka meta tin taxinomisi einai:\n"); for(i=0; i= timi_diax) && (left < right) ) right--; if( left != right ) { pin[left] = pin[right]; left++; counter=counter+1; } while( (pin[left] <= timi_diax) && (left < right) ) left++; if( left != right ) { pin[right] = pin[left]; right--; counter=counter+1; } } pin[left] = timi_diax; timi_diax = left; counter=counter+1; left = min; right = max; if(diakoptis==1) { if( left < timi_diax ) quickSort(pin, left, timi_diax-1,1 ); if( right > timi_diax ) quickSort(pin, timi_diax+1, right,1 ); } else if(diakoptis==2) { if( left < timi_diax ) quickSort(pin, left, timi_diax-1,2 ); if( right > timi_diax ) quickSort(pin, timi_diax+1, right,2 ); } printf("Eginan %d antimetatheseis!",counter); } int euresi (int megethos) { int temp; srand(time(NULL)); temp = rand()%megethos; return temp; }