排序算法(C 语言版)

1、选择排序
选最小: 
#include<stdio.h>

int num[10]={9,7,2,3,5,6,1,4,8,0};

int main()
{
    int i,j;
    int min;
    int temp;
    int n=10;
    for(i=0;i<n-1;i++)
    {
        min = i;
        for(j=i+1;j<n;j++)
        {
            if(num[min]>num[j])
                min=j;
        }
        if(min!=i)
        {
            temp=num[min];
            num[min]=num[i];
            num[i]=temp;
        }
    }

    for(i=0;i<n;i++)
    {
        printf("%d\t",num[i]);
    }
    printf("\n");

    return 0;
}
 
选最大:
#include<stdio.h>

int num[10]={9,7,2,3,5,6,1,4,8,0};

int main()
{
    int i,j;
    int n=10;
    
    int max;
    int temp;
    for(i=0;i<n-1;i++)
    {
        max=0;
        for(j=1;j<n-i;j++)
        {
            if(num[max]<num[j])
                max=j;
        }
        if(max!=n-1-i)
        {
            temp = num[max];
            num[max]=num[n-1-i];
            num[n-1-i]=temp;
        }
    }

    for(i=0;i<n;i++)
    {
        printf("%d\t",num[i]);
    }
    printf("\n");

    return 0;
}
                                                                                                                                                              
 
2、冒泡排序
选最大
#include<stdio.h>

int num[10]={9,7,2,3,5,6,1,4,8,0};

int main()
{
    int i,j;
    int n=10;
    int temp;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            if(num[j]>num[j+1])
            {
                temp=num[j];
                num[j]=num[j+1];
                num[j+1]=temp;
            }
        }
    }

    for(i=0;i<n;i++)
    {
        printf("%d\n",num[i]);
    }

    return 0;
}
 

 

3、插入排序
posted @ 2012-10-18 21:37  piggy~~  阅读(127)  评论(0编辑  收藏  举报