插入排序(稳定)
void insertsort(int a[],int n)
{
    int i,temp;
    for(i=1;i<n;i++)
    {
        temp=a[i];
        for(j=i-1;j>=0&&a[j]>temp;j--)
            a[j+1]=a[j];
        a[j+1]=temp;
    }
}

平均来说插入排序算法复杂度为O(n^2)。

Shell排序(插入排序改进 不稳定)
选择排序(不稳定:出现相同数字时相对位置会改变)
void selectsort(int a[],int n)
{
    int i,j,min,temp;
    for(i=0;i<n-1;i++)
    {
        min=i;
        for(j=i+1;j<n;j++)
        {
            if(a[j]<a[min])
                min=j;
        }
        if(min!=i)
        {
            temp=a[i];
            a[i]=a[min];
            a[min]=temp;
        }
    }
}
二元选择排序(选择排序改进)
堆排序
冒泡排序
桶排序

桶排序可以说得上是最简单的排序算法了,但是它的使用范围非常狭窄,不过不可否认的是在其适用范围内,它的性能要比快速排序还要快上很多倍。

没错,桶排序也是一种非比较型排序算法,这也正是它能够超越快速排序的原因。

桶排序主要有以下缺陷:

1.参与排序的数组存放的必须是整数

2.数组中的最大数和最小数保持在一个合理的间距内

3.需要额外的内存空间。

具体见http://blog.jobbole.com/100361/


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

set容器的一些用法 Previous
枚举 Next