博客
关于我
OJ.对链表进行插入排序
阅读量:624 次
发布时间:2019-03-13

本文共 1376 字,大约阅读时间需要 4 分钟。

链表中的插入排序

插排的逻辑无需多说,直接上代码:

typedef struct ListNode ListNode;struct ListNode* insertionSortList(struct ListNode* head){       if(head==NULL||head->next==NULL)    return head;    //新链表头节点为sorthead    ListNode* sorthead=head;    ListNode* cur=head->next;    sorthead->next=NULL;    while(cur)    {           ListNode* post=cur->next;                //如果cur的val小于sorthead的val;将cur头插在sorthead前        if(cur->val<=sorthead->val)        {               cur->next=sorthead;            sorthead=cur;        }        //cur的val大于sorthead的val,中间插入与尾插        else        {               ListNode* sortPrev=sorthead;            ListNode* sortNext=sortPrev->next;            while(sortNext)            {                   //cur的val大于等于sortPrev的val,cur插入sortprev后sortNext后                if(sortNext->val>=cur->val)                {                       sortPrev->next=cur;                    cur->next=sortNext;                    break;                }                //不符合cur的插入位置,sortPrev与sortNext同时往后走;                else                {                       sortPrev=sortNext;                    sortNext=sortNext->next;                }            }            //如果sortNext走到NULL位,则尾插            if(sortNext==NULL)            {                   sortPrev->next=cur;                cur->next=NULL;            }        }        //cur迭代向后走;        cur=post;    }    return sorthead;}

转载地址:http://wmzaz.baihongyu.com/

你可能感兴趣的文章
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
mysql 四种存储引擎
查看>>
MySQL 基础模块的面试题总结
查看>>
MySQL 备份 Xtrabackup
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>