C语言排序算法
1.冒泡排序
void BubbleSort(int a[],int n)
{
int i,j,t,flag=0;//flag用来标记是否发生交换
for(i=0;i<n;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j-1]>a[j])//交换数据
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
flag=1;//有数据交换,设置标志变量
}
}
if(flag==0)//没发生交换,直接跳出循环
break;
else
flag=0;
}
}
2.选择排序
void SelectSort(int a[],int n)
{
int i,j,flag,t;
for(i=0;i<n-1;i++)
{
flag=i;//记录需和第flag个元素交换
for(j=i+1;j<n;j++)//查找最小数据,保存其序号在flag中
if(a[flag]>a[j])
flag=j;
if(flag!=i)//交换最小数据在前面
{
t=a[i];
a[i]=a[flag];
a[flag]=t;
}
}
}
3.插入排序
void InsertSort(int a[],int n)
{
int i,j,t