#include <stdio.h>
#include <stdlib.h>
//交换函数
void Swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
//冒泡排序
void BubbleSort(int a[],int n)
{
int count=1;
for(int i=n-1;i>0;i–)
{
for(int j=0;j<i;j++)
if(a[j]>a[j+1])
Swap(&a[j],&a[j+1]);
printf("[%d]",count++);
for(int i=0;i<n;i++)
printf("%-4d",a[i]);
printf("\n");
}
}
//选择排序
void SelectionSort(int a[],int n)
{
int count=1;
for(int i=0;i<n-1;i++)
{
int k=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
if(k!=i)
Swap(&a[i],&a[k]);
printf("[%d]",count++);
for(int i=0;i<n;i++)
printf("%-4d",a[i]);
printf("\n");
}
//for(int i=0;i<n;i++)
//printf("%-4d",a[i]);
//printf("\n");
}
//插入排序
void InsertionSort(int a[],int n)
{
int count=1;
for(int i=0;i<n;i++)
{
for(int j=i;j>0;j–)
if(a[j]<a[j-1])
Swap(&a[j],&a[j-1]);
printf("[%d]",count++);
for(int i=0;i<n;i++)
printf("%-4d",a[i]);
printf("\n");
}
/for(int i=0;i<n;i++)
printf("%-4d",a[i]);
printf("\n");/
}
void main()
{
int a[10];
int choice;
int n;
printf(“请输入数据个数;\n”);
scanf("%d",&n);
printf(“请输入数据:\n”);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
do{
printf(“请选择排序方式:\n”);
printf(“1.选择排序 2.插入排序\n”);
printf(“3.冒泡排序 \n”);
scanf("%d",&choice);
switch(choice)
{
case 1:
SelectionSort(a,n);
break;
case 2:
InsertionSort(a,n);
break;
case 3:
BubbleSort(a,n);
break;
}
}while(choice!=1||choice!=2||choice!=3);
system("pause");
}