#include<stdio.h>
#define SWAMP(a,b,temp); {(temp)=(a);(a)=(b);(b)=(temp);}
void SwampTwoInt(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
void ChooseSort(int a[],unsigned short Num)
{
unsigned short i=0,j=0,MinIndex=0;
int Temp;
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
for(i=0;i<Num;++i){
MinIndex=i;
for(j=i+1;j<Num;++j){
if(a[j]<a[MinIndex]){
MinIndex=j;
}
}
if(MinIndex!=i){
SWAMP(a[MinIndex],a[i],Temp);
}
}
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
}
void InsertSort(int a[],unsigned short Num)
{
int temp;
unsigned short i=0,j=0;
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
for(i=1;i<Num;++i){ //外循环遍历数组,i从0-Num
for(j=i;j>0;--j){ //j从i到0,j和j-1两两比较
if(a[j]<a[j-1]){ //如果后一个比前一个大,交换。
SWAMP(a[j],a[j-1],temp);
}
}
}
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
}
void TestSwamp(void)
{
int a=1,b=2,temp;
SWAMP(a,b,temp);
printf("a==%d,b==%d\r\n",a,b);
SwampTwoInt(&a,&b);
printf("a==%d,b==%d\r\n",a,b);
printf("\r\n");
}
int main(void)
{
int a[]={4,6,1,3,2, 8,9,7,5,6, 2,4,5,1,2};
TestSwamp();
//InsertSort(a, sizeof(a)/sizeof(a[0]) );
ChooseSort(a, sizeof(a)/sizeof(a[0]) );
return 0;
#define SWAMP(a,b,temp); {(temp)=(a);(a)=(b);(b)=(temp);}
void SwampTwoInt(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
void ChooseSort(int a[],unsigned short Num)
{
unsigned short i=0,j=0,MinIndex=0;
int Temp;
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
for(i=0;i<Num;++i){
MinIndex=i;
for(j=i+1;j<Num;++j){
if(a[j]<a[MinIndex]){
MinIndex=j;
}
}
if(MinIndex!=i){
SWAMP(a[MinIndex],a[i],Temp);
}
}
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
}
void InsertSort(int a[],unsigned short Num)
{
int temp;
unsigned short i=0,j=0;
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
for(i=1;i<Num;++i){ //外循环遍历数组,i从0-Num
for(j=i;j>0;--j){ //j从i到0,j和j-1两两比较
if(a[j]<a[j-1]){ //如果后一个比前一个大,交换。
SWAMP(a[j],a[j-1],temp);
}
}
}
for(i=0;i<Num;++i){
printf("%d ",a[i]);
}
printf("\r\n");
}
void TestSwamp(void)
{
int a=1,b=2,temp;
SWAMP(a,b,temp);
printf("a==%d,b==%d\r\n",a,b);
SwampTwoInt(&a,&b);
printf("a==%d,b==%d\r\n",a,b);
printf("\r\n");
}
int main(void)
{
int a[]={4,6,1,3,2, 8,9,7,5,6, 2,4,5,1,2};
TestSwamp();
//InsertSort(a, sizeof(a)/sizeof(a[0]) );
ChooseSort(a, sizeof(a)/sizeof(a[0]) );
return 0;
}
附:工程下载