首页 > 编程语言 > 详细

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

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

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语言面试题分类->排序算法

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!