码迷,mamicode.com
首页 > 编程语言 > 详细

C语言面试题分类->排序算法

时间:2018-04-03 19:15:03      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:oid   缺点   时间复杂度   归并   快速排序   复杂度   color   排序   插入排序   

1.选择排序。

  每次将最小的数,与剩余数做比较。找到更小的,做交换。

  时间复杂度:O(n2)

  空间复杂度:O(1)

  优缺点:耗时但内存空间使用小。

void selectSort(int *p,int len)
{
    int i, j,tmp;
    for(i = 0; i < len; i++)
    {
        for(j = i+1; j < len; j++)
        {
            if(p[i] > p[j])
            {
                 tmp = p[i];
                p[i] = p[j];
                p[j] = tmp;
            }
        }
    }

}

2。冒泡排序

  一轮比较两个相邻的数,获得一个最大的数仍在后边。

  时间复杂度:O(n2)

  空间复杂度:O(1)

  优点:稳定。

void popupSort1(int *p,int len)
{
    int i, j, tmp;
    for(i = 0; i < len ; i++)
    {
        for(j = i; j < len -1; j++)
        {
            if(p[j] > p[j+1])
            {
                 tmp = p[j];
                p[j] = p[j+1];
                p[j+1]  = tmp;
            }
        }
    }
}

3。插入排序

4。快速排序

5。堆排序

6。归并排序

 

C语言面试题分类->排序算法

标签:oid   缺点   时间复杂度   归并   快速排序   复杂度   color   排序   插入排序   

原文地址:https://www.cnblogs.com/mcy0808/p/8710230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!