c语言 选择排序与冒泡排序

Modified on: Sat, 17 Nov 2018 23:53:23 +0800 热度: 1,415 度

#include <stdio.h>
int *SelectSort(int *,int,int);
int *BubbleSort(int *,int,int);

int main(int argc, const char * argv[])
{

int num[]={4217,3425,3245665,2435324,324534,3425,237,345756};
int i;
int len=(int)sizeof(num)/sizeof((num)[0]);
printf("t为0选择排序后的结果为:\n");
* num= *SelectSort(num,len,0);
for (i=0;i<len;i++)
{
    printf("%d\n",num[i]);
}
printf("\n\n");
printf("t为1选择排序后的结果为:\n");
* num= *SelectSort(num,len,1);
for (i=0;i<len;i++)
{
    printf("%d\n",num[i]);
}
printf("\n\n");

printf("t为0冒泡排序后的结果为:\n");
* num= *BubbleSort(num,len,0);
for (i=0;i<len;i++)
{
    printf("%d\n",num[i]);
}
printf("\n\n");
printf("t为1冒泡排序后的结果为:\n");
* num= *BubbleSort(num,len,1);
for (i=0;i<len;i++)
{
    printf("%d\n",num[i]);
}
printf("\n\n");

return 0;

}
int *SelectSort(int num[],int len,int t)
{// t为0从大到小,t为1从小到大

int i,j;
int temp;
for (i=0;i<len;i++)
{
    for(j=i;j<len;j++)
    {
        if (num[i]<num[j]&&!t)
        {
            temp=num[j];
            num[j]=num[i];
            num[i]=temp;
        }
        if (num[i]>num[j]&&t)
        {
            temp=num[j];
            num[j]=num[i];
            num[i]=temp;
        }
        
    }
}
return num;

}
int *BubbleSort (int num[],int len,int t)
{

int i,j;
int temp;
for (i=0;i<len;i++)
{
    for (j=0;j<len-i-1;j++)
    {
        if (num[j]<num[j+1]&&!t)
        {
            temp=num[j];
            num[j]=num[j+1];
            num[j+1]=temp;
        }
        if (num[j]>num[j+1]&&t)
        {
            temp=num[j];
            num[j]=num[j+1];
            num[j+1]=temp;
        }
        
    }
}
return num;

}

添加新评论