All pastes #769892 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-11 19:10 UTC
rendered paste body
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <malloc.h>
#include <string.h>
#define filename "array.txt"


void quicksort(int left,int right);

int main(void)
{
	int e,meg,*array,e1,key,key1;
	key=0;
	key1=0;

	printf("Parakalo doste mia epithimiti epilogi(1-9): \n 1. Dimiourgia Pinaka\n 2. Sosimo pinaka se arxeio\n 3. Diabasma pinaka apo arxeio\n 4. Emfanisi pinaka\n 5. BubbleSort\n 6. InsertionSort\n 7. QuickSort1\n 8. QuickSort2\n 9. QuickSort3\n 0. Exodos\n \nEpilogi:");
	while(key==0){//me (key!=0) meta tin akiri epilogi girnouse sto arxiko menou alla den ekleine to programma,tora kleinei to programma den girnaei sto arxiko menou...//
		scanf("%d",&e);

		if(e==1){
			printf("Parakalo eisagete to megethos tou pinaka: ");
			scanf("%d",&meg);
			array=(int *)malloc(meg * sizeof(int));
			if(array==0) printf("Den yparxei mnimi gia tin dimiourgia neou pinaka \n");
			printf("Doste epithimito tropo arxikopoiisis: \n 1. Ataxinomitos\n 2. Sxedon taxinomimenos\n Epilogi:");
			while(key1==0){
				scanf("%d",&e1);
				if(e1==1){
					int i;
					srand(time(0));
					for(i=0; i<meg; i++){
						array[i]=rand()%10;//afou dosoume os tropo arxikopoiisis tin epilogi 1 den bgenei apo to loop gia na girisei sto menou,alla ftiaxnei ton pinaka giati me mia printf emfanize ta tixea stoixeia//
							}
					key1=1;
							}
				else if(e1==2){
					key1=1;
								}
				else printf("Akiri epilogi , doste mia epilogi apo 1-2:"); key1=0;
						}	
			key=1;
					}
	//iparxei tropos na bgeno apo ta loop xoris to key tis while ??//		
		else if(e==2){
			FILE *fp;
			int i;
			fp=fopen(filename,"w");

			if (fp == 0){
				printf("Adinati i eggrafi");
				exit(0);
							}
			for(i=0; i<meg; i++) fprintf(fp,"%d\n",array[i]);

			fclose(fp);

			key=1;
						}
		else if(e==3){
			key=1;
						}
		else if(e==4){
			int i;
			for(i=0; i<meg; i++){
				printf("%d\n",array[i]);
									}
			key=1;
						}
		else if(e==5){
			int i, j, temp;
			for( i = 1; i < meg; i++){	   
				for( j = 0; j < meg-i; j++)
					if( array[j] > array[j+1]){
						temp = array[j];
						array[j] = array[j+1];
						array[j+1] = temp;
										}
									}
			printf("Ta stoixeia tou pianka meta tin taxinomisi einai:\n");
			for(i=0; i<meg; i++) printf("%d",array[i]);
			key=1;
						}
		else if(e==6){
			int i,j,temp1;
			for(i=1; i<meg; i++){
				temp1=array[i];
				j=i;
				while((j>0)&&(array[j-1]>temp1)){
					array[j] = array[j-1];
					j=j-1;
												}
			array[j]=temp1;
						}
			printf("Ta stoixeia tou pianka meta tin taxinomisi einai:\n");
			for(i=0; i<meg; i++) printf("%d",array[i]);
			key=1;
						}
		else if(e==7){

			key=1;
						}
		else if(e==8){
			key=1;
						}
		else if(e==9){
			key=1;
						}
		else if(e==0){
			key=0;
						}
		else printf("Akiri epilogi , doste mia epilogi apo 1-9:"); key=1;
		}
	free(array);
	return 0;
}

void q_sort( int left, int right )
{
			int pivot,lefthold,righthold;
			lefthold=left;
			righthold=right;
			pivot=array[left];
			while(left<right){
				while((array[right]>=pivot)&&(left<right)){
					right--;
														}
				if(left!=right){
					array[left]=array[right];
					left++;
							}
				while((array[left]<=pivot)&&(left<right)){
					left++;
														}
				if(left!=right){
					array[right]=array[left];
					right--;
								}
							}
			array[left]=pivot;
			pivot=left;
			left=lefthold;
			right=righthold;
			if(left<pivot){
				quicksort(left,pivot-1);
							}
			if(right>pivot){
				quicksort(pivot+1,right);
							}
}