首页 > 编程语言 >用C语言实现的对单链表进行快速排序的算法

用C语言实现的对单链表进行快速排序的算法

时间:2022-11-01 18:15:16浏览次数:55  
标签:单链 end C语言 list next quickSortLinkList 排序 LinkNode refer

typedef struct LinkNode
{
    int data;
    struct LinkNode *next;

} LinkNode, *LinkList;
void quickSortLinkList(LinkList list,LinkNode *end)
{
    LinkNode * p = list;
    LinkNode *refer = p->next;
    if(list->next ==end)
        return;
    while(p->next!=end)
    {
        if(p->next->data < refer->data)  //小于就是升序 大于就是降序
        {
            LinkNode *listnext = list->next;
            list->next = p->next;
            LinkNode* pnextnext = p->next->next;
            p->next->next  = listnext;
            p->next = pnextnext;
        }
        else
            p=p->next;
    }
    quickSortLinkList(list,refer);
    quickSortLinkList(refer,NULL);
}

int main()
{
    LinkList *list ;
    /*
    此处给链表赋值
                    */
    quickSortLinkList(list,NULL);
}

 

标签:单链,end,C语言,list,next,quickSortLinkList,排序,LinkNode,refer
From: https://www.cnblogs.com/woyuele/p/16848658.html

相关文章

  • C语言从入门到精通——字符串和内存
    求非空字符串元素个数:“nichoushachounizadi”字符串逆置:str_inversehello--ollehvoidstr_inserse(char*str){char*start=str;//记录首元素地址char*en......
  • C语言求n的阶乘
    #include<stdio.h>int main(){int i=0;int n=0;int ret=1;//这里赋值不能为0,如果为0,求得结果就为0for(i=1;i<=n;i++){ret=ret*i  ;//这里也可以写为ret*=i}print......
  • Redis 中两个字段排序
    参考:Redis中两个字段排序 redis如何实现多字段排序1.多个维度使用数据库查询排序输出,目前使用的方式。 Redis用一个SortedSet解决按两个字段排序的问题,也就是......
  • C语言: GDB调试技术(一)
    启动GDB的方法有以下几种:1、gdb<program>program也就是你的执行文件,一般在当然目录下。’例如我写了一个简单的helloword程序#include<stdio.h>intmain(){inta=1;......
  • C语言: ---Linux下ulimit是什么鬼
        其实ulimit的讲解不属于C或者C++语言范畴,他只是在我们日常开发或者线上linux运行环境不可缺少的工具。    比如我们要查看服务器崩溃的core文件,允许core......
  • C语言:---gdb多线程调试
    1)恢复程序运行和单步调试当程序被停住了,你可以用continue命令恢复程序的运行直到程序结束,或下一个断点到来。也可以使用step或next命令单步跟踪程序。continue[ignore-coun......
  • C语言: ---gdb查看内存和寄存器内容
    gdb没有CodeWarrior强大,但是也提供了查看寄存器的命令:(gdb)inforegisterr1r1            0xbffffb40   3221224256(gdb)inforegistersr0     ......
  • C语言: ---windows下VS Debug调试
    首先我先列出来常用的一些命令或者键盘控制:F5开始调试,执行到断点Shift+F5停止调试F9在光标所在行添加断点Shift+F9QuickWatchShiftCtrlF9deleteall断点F10单......
  • C语言学习:结构
    structnamect{charfmame[LEN];charlname[LEN];intletter;};全局创建结构,注意末尾有分号在main函数内创建结构1.1structnamect{charfma......
  • C语言随笔1
    初识C语言主要框架为:#include<stdio.h>intmain(){  printf(“xxx\n”)  return0}1.main为主函数,程序的入口,有且只有一个2.int是整形的意思,main前面的int表......