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;
    }
    
    
  • 相关阅读:
    iOS微信支付
    iOS登录及token的业务逻辑(没怎么用过,看各种文章总结)
    IOS 支付宝支付开发流程
    iOS SDWebImage实现原理
    站立会议1
    作业六:团队项目——编写项目的Spec
    作业5
    站立会议8
    站立会议 3
    站立会议 2
  • 原文地址:https://www.cnblogs.com/myblog1993/p/11418705.html
Copyright © 2011-2022 走看看