C语言实现的排序

冒泡排序

比较相邻的两个元素,若顺序不对,则将其调换

通过一遍排序,较大的数会排到最后(沉到底部)

两层循环,外层循环控制遍数,内层循环控制每一遍内的排序。

完整代码:

#include<stdio.h>
int Readscorce(int Num[]);
void BubbleSort(int Num[],int n);
#define SIZE 50

int main()
{
    int Num[SIZE];
    int n,i;
    n=Readscorce(Num);
    BubbleSort(Num,n);
    for(i=0;i<n;i++)
    {
        printf("%d  ",Num[i]);
    }
    getchar();
    getchar();
    return 0;
}

int Readscorce(int Num[])
{
    int i=-1;
    do
    {   i++;
        printf("Please Enter a number:");
        scanf("%d",&Num[i]);
    }while(Num[i]>=0);

    return i;
}

void BubbleSort(int Num[],int n)
{
    int i,j,temp;
    for(i=0;i<n-1;i++)
    {
        for(j=1;j<n-i;j++)//减去后面已经排好的元素
        {
            if(Num[j]<Num[j-1])
            {
             temp=Num[j-1];
             Num[j-1]=Num[j];
             Num[j]=temp;
            }
        }
    }
}
BubbleSort Code

 交换法排序

进行一遍后最小的数(或最大的数)会排在较前的位置

两层循环,外层循环控制遍数,内层循环控制每一遍内的排序。

 选择法排序

 

找出最小数的下标,将最小数下标与首元素下标比较难

归并排序法

 

posted @ 2018-04-04 00:12  缥缈一叶舟  阅读(288)  评论(0编辑  收藏  举报