#include <stdio.h>
#define N 5
int bubble_sort()
{
int grade[N],temp;
int i,j;
i=j=temp=0;
printf("Please input %d numbers:\n", N);
for(i=0;i<N;i++)
{
scanf("%d", &grade[i]);
}
printf("The %d numbers you input are:\n");
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N-i-1; j++)
{
if(grade[j] > grade[j+1])
{
temp = grade[j+1];
grade[j+1] = grade[j];
grade[j] = temp;
}
}
}
printf("After bubble sort the %d numbers you input are:\n");
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
return 1;
}
int quick_sort_get()
{
int i=0;
int grade[N];
int first=0;
int end=N-1;
printf("Please input %d numbers:\n", N);
for(i=0;i<N;i++)
{
scanf("%d", &grade[i]);
}
printf("The %d numbers you input are:\n", N);
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
quick_sort(grade, first, end);
printf("After quick sort the %d numbers you input are:\n", N);
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
return 1;
}
int quick_sort(int grade[], int first, int end)
{
int i=first,j=end,temp=grade[first];
while(i<j)
{
while(i<j && grade[j]>=temp)
{
j--;
}
grade[i]=grade[j];
while(i<j && grade[i]<=temp)
{
i++;
}
grade[j]=grade[i];
}
grade[i]=temp;
if(first<i-1)
{
quick_sort(grade,first,i-1);
}
if(end>i+1)
{
quick_sort(grade,i+1,end);
}
return 1;
}
int insert_sort ()
{
int i=0,j=0;
int grade[N];
int temp=0;
printf("Please input %d numbers:\n", N);
for(i=0;i<N;i++)
{
scanf("%d", &grade[i]);
}
printf("The %d numbers you input are:\n", N);
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
for (i = 1; i<N; i++)
{
temp = grade[i];
for(j = i;j>0;j--)
{
if ( temp < grade[j-1] )
{
grade[j] = grade[j-1];
}
else
{
break;
}
}
grade[j] = temp;
}
printf("After bubble sort the %d numbers you input are:\n");
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
return 1;
}
int select_sort()
{
int grade[N],temp;
int i,j,k;
i=j=k=temp=0;
printf("Please input %d numbers:\n", N);
for(i=0;i<N;i++)
{
scanf("%d", &grade[i]);
}
printf("The %d numbers you input are:\n", N);
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(grade[j]<grade[k])
{
k=j;
}
}
if(i!=k)
{
temp=grade[i];
grade[i]=grade[k];
grade[k]=temp;
}
}
printf("After bubble sort the %d numbers you input are:\n", N);
for(i=0;i<N;i++)
{
printf("%d\t", grade[i]);
}
printf("\n");
return 1;
}
int main()
{
int i;
char ch;
do
{
printf("\t|===========================================================|\n");
printf("\t| |\n");
printf("\t| |\n");
printf("\t| MENU |\n");
printf("\t| |\n");
printf("\t|===========================================================|\n");
printf("\t| 1................bubble_sort..................|\n");
printf("\t| 2................quick_sort...................|\n");
printf("\t| 3................insert_sort..................|\n");
printf("\t| 4................select_sort..................|\n");
printf("\t| 5.............................................|\n");
printf("\t| 6.............................................|\n");
printf("\t| 7.............................................|\n");
printf("\t| 8.............................................|\n");
printf("\t|===========================================================|\n");
printf("\tPlease input your select:\n");
scanf("%d", &i);
switch(i)
{
case 1:
bubble_sort();
break;
case 2:
quick_sort_get();
break;
case 3:
insert_sort();
break;
case 4:
select_sort();
break;
/*case 5: ; break;
case 6: ; break;
case 7: ; break;
case 8: ; break;
*/
default:
printf("ERROR INPUT\n");
}
printf("Please input y or Y to continue other to end:\n");
scanf("\n%c", &ch);
}while((ch=='y')||(ch=='Y'));
return 0;
}