C语言_冒泡排序_选择排序_插入排序_快速排序

#include <stdio.h>
#define SIZE 10
void quickSort(int x[],int indexL,int indexR){
	int i,j,mid,temp,k;
	i=indexL;j=indexR;mid=x[i];
	if(i>=j){
		return;
	}
	while(i<j){
		while(i<indexR&&x[i]<=mid){
			i++;
		}
		while(j>indexL&&x[j]>=mid){
			j--;
		}
		if(i<j){
			temp=x[i];
			x[i]=x[j];
			x[j]=temp;
			for(k=0;k<SIZE;k++){
				printf("%d ",x[k]);
			}
			printf("\n");
		}
	}
	if(j!=indexL){
		temp=x[j];
		x[j]=mid;
		x[indexL]=temp;
		for(k=0;k<SIZE;k++){
			printf("%d ",x[k]);
		}
		printf("\n");
	}
	quickSort(x,indexL,j-1);
	quickSort(x,j+1,indexR);
}
void insertSort(int x[]){
	printf("insertSort:\n");
	int i,j,temp,index,k;
	for(k=0;k<SIZE;k++){
		printf("%d ",x[k]);
	}
	printf("\n");	
	for(i=0;i<SIZE-1;i++){
		temp=x[i+1];index=i+1;
		for(j=i+1;j>=0;j--){			
			if(temp<x[j]){
				x[j+1]=x[j];
				index=j;
			}
		}
		if(index!=i+1){
			x[index]=temp;
			for(k=0;k<SIZE;k++){
				printf("%d ",x[k]);
			}
			printf("\n");
		}
	}
}
void choiceSort(int x[]){
	printf("choiceSort:\n");
	int i,j,temp,k;
	for(k=0;k<SIZE;k++){
		printf("%d ",x[k]);
	}
	printf("\n");
	int min,index;
	for(i=0;i<SIZE-1;i++){
		min=x[i];index=i;
		for(j=i+1;j<SIZE;j++){
			if(min>x[j]){
				min=x[j];
				index=j;
			}
		}
		if(i!=index){
			temp=x[i];
			x[i]=min;
			x[index]=temp;
			for(k=0;k<SIZE;k++){
				printf("%d ",x[k]);
			}
			printf("\n");
		}
	}
	
}
void bubbleSort(int x[]){
	printf("bubbleSort:\n");
	int i,j,temp,k;
	for(k=0;k<SIZE;k++){
		printf("%d ",x[k]);
	}
	printf("\n");
	for(i=0;i<SIZE;i++){
		for(j=i+1;j<SIZE;j++){
			if(x[i]>x[j]){
				temp=x[i];
				x[i]=x[j];
				x[j]=temp;
				for(k=0;k<SIZE;k++){
					printf("%d ",x[k]);
				}
				printf("\n");
			}
		}
	}
}
int main() {
	int a[SIZE]={11,44,22,23,77,89,31,25,29,10};
	int kind;
	printf("\tMenu\n\t[1]bubbleSort\n\t[2]choiceSort\n\t[3]insertSort\n\t[4]quickSort\n");
	scanf("%d",&kind);
	switch(kind){
		case 1:
			bubbleSort(a);break;
		case 2:
			choiceSort(a);break;
		case 3:
			insertSort(a);break;
		case 4:
			printf("quickSort:\n");
			int s;
			for(s=0;s<SIZE;s++){
				printf("%d ",a[s]);
			}
			printf("\n");
			quickSort(a,0,SIZE-1);
			break;
		default:
			printf("Input ERROR\n");		
	}
	return 0;
}

 

 

 

猜你喜欢

转载自blog.csdn.net/sun2014moon/article/details/82837967