栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

算法分析:基于划分算法的快速排序C语言实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

算法分析:基于划分算法的快速排序C语言实现

 因为快速算法的时间复杂度,快速排序的速度也比大部分排序的速度要快。在最坏的情况下,算法QUICKSORT 的运行时间是0(n²),然而如果总是选择中项作为主元,它的时间复杂性是O( nlog n),这样,就需要spilt算法来帮忙寻找。多余的也不多说了,书上都有,接下来直接上代码!

#include 
#include 



int split(int A[],int low,int high)
{
    int i = low , temp;
    int x = A[low];
    for(int j=low+1;j<=high;j++){
        if(A[j]<=x){
            i++;
            if(i!=j){
                temp = A[i];
                A[i] = A[j];
                A[j] = temp;
            }
        }
    }
    temp = A[low];
    A[low] = A[i];
    A[i] = temp;
    return i;
}
void quicksort(int A[],int low,int high)
{
    int w;
    if(low 

注释那一段是为了更好的理解划分算法 ,当年第一次接触的时候也有点懵,所以现在总结一下,把每一步划分的过程都写出来了,供大家学习。

程序实现:

可以改变主函数,实现元素个数的输入

int main()
{
    int n;
    printf("输入多少个元素:");
    scanf("%d",&n);
    int A[n];
    for(int i=0;i 

 程序实现:

感谢你能看到这里,希望这篇文章能帮到你!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号