【算法】【C语言】排序算法

前言

本文为个人笔记。作者会不定时修改文章内容。

1. 冒泡排序

时间复杂度O(n2)

int BubbleSort(int nums[10])
{
    int temp = 0;

    for(int i = 0; i < 9; i++)
    {
        for(int j = i + 1; j < 10; j++)
        {
            if(nums[i] > nums[j]) 
            {
                temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
    return 0;
}

int BubbleSort(int num[10])
{
    int temp = 0;

    for(int i = 0; i < 9; i++)
    {
        for(int j = 9; j > i; j++)
        {
            if(nums[j] < nums[i]) 
            {
                temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
    return 0;
}

2. 选择排序

时间复杂度O(n2)

int SelctionSort(int nums[10])
{
    for(int i = 0; i < 9; i++)
    {
        int minNum = 0;
        for(int j = i + 1; j < 10; j++)
        {
            if(nums[j] < nums[i])
            {
                minNum = j;
            }

            if(minNum != i)
            {
                int temp = 0;
                temp = minNum[i];
                minNum[i] = minNum[j];
                minNum[j] = minNum[i];
            }
        }
    }
    return 0;
}

int SelctionSort(int nums[10])
{
    for(int i = 9; i > 0; i--)
    {
        int maxNum = 9;
        for(int j = i - 1; j >= 0; j--)
        {
            if(nums[j] > nums[i])
            {
                maxNum = j;
            }

            if(maxNum != i)
            {
                int temp = 0;
                temp = minNum[i];
                minNum[i] = minNum[j];
                minNum[j] = minNum[i];
            }
        }
    }
    return 0;
}

3. 插入排序

时间复杂度O(n2)

int InsertionSort(int nums[10])
{
    for(int i = 0; i < 9; i++)
    {
        for(int j = i + 1; j--; i < 10)
        {
            if(nums[i] > nums[j])
            {
                int temp;
                temp = nums[i];
                nums[i] = nums[j];
            }
        }
    }

    return 0;
}

int InsertionSort(int nums[10])
{
    for(int i = 9; i > 0; i++)
    {
        for(int j = i - 1; j--; j >= 0)
        {
            if(nums[i] > nums[j])
            {
                int temp;
                temp = nums[i];
                nums[i] = nums[j];
            }
        }
    }

    return 0;
}

4. 希尔排序

4.1 时间复杂度O(n1.5)

4.2 空间复杂度

4.3

5. 快速排序

5.1 时间复杂度O(N*logN)

5.2 空间复杂度

5.3

6. 并归排序

6.1 时间复杂度O(N*logN)

6.2 空间复杂度

6.3

7. 堆排序

7.1 时间复杂度O(N*logN)

7.2 空间复杂度

7.3

8. 基数排序

8.1 时间复杂度O(d(n+r))

8.2 空间复杂度

8.3

结语

感谢阅读,欢迎各位读者在评论区留言。如果文章对你有帮助,欢迎点赞收藏。

猜你喜欢

转载自blog.csdn.net/weixin_45117176/article/details/132147619
今日推荐