1. 程式人生 > >C語言面試題分類->排序算法

C語言面試題分類->排序算法

OS sort 試題 時間復雜度 ups popup popu 使用 body

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語言面試題分類->排序算法