头文件:
#include<stdio.h>
#define N 10
void maopao(int a[],int n);
void exchange(int a[],int n);
void choose(int a[],int n);
主函数:
#include"sort_header.h"
int main(void)
{
int i;
int a[N] = {3,2,4,5,6,1,0,9,8,7};
puts("原数组为:");
for(i = 0 ;i<N;i++)
printf("%-3d",a[i]);
puts("");
//maopao(a,N);
//exchange(a,N);
choose(a,N);
puts("排序后数组为:");
for(i = 0 ;i<N;i++)
printf("%-3d",a[i]);
puts("");
return 0;
}
#include"sort_header.h"
void maopao(int a[],int n)
{
int i,j;
int flag=1;
for(i=0;i<n-1 && flag==1;i++)//比较次数
{
flag = 0;
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
a[j]^=a[j+1]^=a[j]^=a[j+1];
flag = 1;
}
}
}
printf("冒泡");
}
选择排序:
#include"sort_header.h"
void choose(int a[],int n)
{
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[k]>a[j])
k=j;
}
if(k!=i)
{
a[k]^=a[i]^=a[k]^=a[i];
}
}
printf("选择");
}
交换排序:
#include"sort_header.h"
void exchange(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
a[i]^=a[j]^=a[i]^=a[j];
}
}
}
printf("交换");
}