菜鸟总结(C语言最基础排序法)

冒泡排序法

特点:就近原则 成双结对;
小议:冒泡排序法按照一定顺序与相邻的元素两两进行比较,每遍历一次只确定一个元素,因此N个元素就需要遍历N-1次。

代码片段

for(i=0;i<n-1;i++)
{
    for(j=0;j>n-1-i;j++)
    {
        if(a[j]>a[j+1])
        temp=a[j+1];
        a[j+1]=a[j];
        a[j]=temp;

    }
}

交换排序法

特点:比武大会;金字塔;
小议:交换排序***每个元素跟其他每个元素交手的机会,比较次数明显多于冒泡排序。

代码片段

for(i=0;i<n-1;i++)
{
    for(j=i+1;j<n;j++)
    {
        if(a[i]>a[j])
        temp=a[j];
        a[j]=a[i];
        a[i]=temp;
    }
}

选择排序法

特点:改变时机
小议:选择排序法与交换排序法不同之处只是改变了交换时机,也因此,与交换排序法相比,选择排序法明显减少了交换次数。

代码片段

for(i=0;i<n-1;i++)
{
    k=i;
    for(j=i+1;j<n;j++)
    {
        if(a[k]>a[j])
        {
        k=j;
        }

    }
    if(k!=i)
    {
        temp=a[k];
        a[k]=a[i];
        a[i]=temp;
    }
}

注:本文中全部代码默认从小到大排序