zoukankan      html  css  js  c++  java
  • 单链表快速排序

    #include <bits/stdc++.h>
    using namespace std;
    
    struct linklist{
        int val;
        struct linklist* next;
        linklist(int x) : val(x), next(nullptr){};
    };
    
    
    linklist* getPartion(linklist* phead, linklist* pend)
    {
        int key = phead->val;
        linklist* p = phead;
        linklist* q = p->next;
    
        while(q != pend)
        {
            if(q->val < key)
            {
                p = p->next;
                swap(p->val, q->val);
            }
            q = q->next;
        }
        swap(p->val, phead->val);
        return p;
    }
    
    void linklistSort(linklist* listBegin, linklist* listEnd)
    {
        if(listBegin != listEnd)
        {
            linklist* node = getPartion(listBegin,listEnd);
            linklistSort(listBegin,node);
            linklistSort(node->next,listEnd);
        }
    }
    
    void print_list(linklist* phead)
    {
        linklist* pNode = phead;
        while(pNode != nullptr)
        {
            cout << pNode->val <<" ";
            pNode = pNode->next;
        }
    }
    
    int main()
    {
        int arr[] = {1,2,3,0,4,9,5,7};
        linklist* pbegin = new linklist(NULL);
        linklist* pNode = pbegin;
        for (int i : arr) {
            auto* node = new linklist(i);
            pNode->next = node;
            pNode = pNode->next;
        }
        print_list(pbegin->next);
        cout << endl;
        linklistSort(pbegin->next,nullptr);
        print_list(pbegin->next);
        return 0;
    }
    
    
  • 相关阅读:
    路由器链接
    quartz cron表达式demo
    mybatis xml中常见配置demo
    PLSQL启动很慢的问题
    oracle触发器--if else demo
    去掉redhat linux提示注册
    linux 关闭电子邮件传输服务
    max(length()) oracle字段最长长度
    事件tou
    事件
  • 原文地址:https://www.cnblogs.com/myblog1993/p/11418705.html
Copyright © 2011-2022 走看看