排序综合
选择、冒泡、插入3种排序方法,通过不同的定义来选择使用的排序方法
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#define xuanze
//#define maopao
#define charu
#ifdef xuanze
void select_sort (int a[], int n)//选择排序
{ int i,j,min,k,t;
for (i=1; i<n; i++)
{ min=a[i-1];
k=i-1;
for(j=i; j<n; j++)
if(a[j]<min)
{ min=a[j]; //最小值
k=j;//最值的下标
}
t=a[i-1];
a[i-1]=a[k];
a[k]=t;
}
for (i=0; i<n; i++)
printf("%d\t",a[i]);
printf("\n");
}
#endif
#ifdef maopao
//冒泡排序
void select_sort(int a[],int n)
{ int i,j,t;
for(i=1;i<n;i++)//排序趟数
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for (i=0; i<n; i++)
printf("%d\t",a[i]);
printf("\n");
}
#endif
#ifdef charu
//插入排序
void select_sort(int a[] , int n)
{int i, j;
for(i=1;i<n; i++)
{a[0]=a[i+1] ;
for(j=i;a[j]>a[0];j--)
a[j+1]=a[j];
a[j+1]=a[0];
}
for (i=0; i<n+1; i++)
printf("%d\t",a[i]);
printf("\n");
}
#endif
void main()
{
int sz[]={0,49,27,38,13,76,97,65,50};
select_sort(sz,8);
system("pause");
}