Insertion Sort List

2023-05-16

Sort a linked list using insertion sort.

对一个线性链表排序,维护两对指针即可。

ListNode *insertionSortList(ListNode *head) {
        if( !head )
            return NULL;
        
        ListNode *cur = head->next, *precur = head, *ptr, *pre;
        while( cur )
        {
            pre = ptr = head;
            while( ptr != cur && ptr->val < cur->val )
            {
                pre = ptr;
                ptr = ptr->next;
            }
            if( ptr != cur )
            {
                precur->next = cur->next;//维护cur前后节点的连续性
                if( ptr == head )
                {
                    cur->next = head;
                    head = cur;
                }
                else
                {
                    cur->next = pre->next;
                    pre->next = cur;
                }
                cur = precur->next;//更新当前节点
            }
            else
            {
                precur = cur;
                cur = cur->next;
            }
            
        }
        return head;
    }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Insertion Sort List 的相关文章

  • 使用bulk_insert_mappings

    我正在尝试批量插入以下形式的大量字典列表 results attribute u SEX value d 0 0 value s u M sid 1L attribute u SEX value d 0 0 value s u M sid
  • 为什么在具体化中将 clpfd 变量分配给实际值?

    我正在开发一个 SWI Prolog 程序 该程序使用 CLP FD 约束来找到特定问题的解决方案 为此 我碰巧需要两个列表的 未定位 重叠 那是 List La长度为A List Lb长度为 B A gt B 未定位的重叠列表是La Lb
  • 获取数据框列表并按变量分组,然后使用该变量作为字典的键

    我对 python 编程比较陌生 我有一个 pandas 数据框列表 其中都有 年份 列 我试图按该列进行分组并转换为字典 其中字典键是变量 年份 值是该年的数据帧列表 这在Python中可能吗 我试过这个 grouped dict lis
  • List 和 List 之间的区别[重复]

    这个问题在这里已经有答案了 我读过很多这方面的内容 我知道 List listOfObject new ArrayList
  • 在 Prolog 中动态拆分列表

    我从序言开始几周 但我看到了更深入的操作列表的递归谓词的构造 我的问题是 是否可以构建一个谓词 将给定列表拆分为给定数量的其他列表 比如我想象的 split H T NumberLists Lists 递归实现 split 1 2 3 4
  • MaxLength 数据注释是否可以与 List 一起使用?

    一个可以用 MaxLength 具有字符串和简单数组的属性 i e MaxLength 500 public string ProductName get set Or MaxLength 50 public string Products
  • 计算嵌套列表的深度或最深级别

    A 在一项作业上遇到了真正的问题 并且令人头疼 我正在上一堂入门编程课 我必须编写一个函数 给定一个列表 该函数将返回它所达到的 最大 深度 例如 1 2 3 将返回 1 1 2 3 将返回 2 我写了这段代码 这是我能得到的最好的T T
  • 自动滚动的实时行情(如 Twitter 的“热门推文”)

    是否有一个好的 Javascript 库可以生成自动滚动列表 例如 Twitter 主页上的 热门推文 最好作为 jQuery 插件 它还应该支持 AJAX 功能 动态添加新列表项 由于我们对现有的解决方案并不满意 因此我们从头开始实施了一
  • 将非泛型类扩展为泛型类

    org apache commons collections buffer 包中的 Java 类 CircularFifoBuffer 是非泛型的 可以存储任何类的对象 我想创建一个通用版本 它只能保存类 T 的对象 我的第一个想法是扩展
  • 在 VB.NET 中对对象列表进行排序

    我有一个乘客 对象 列表 它具有不同的属性 passenger name passenger age passenger surname 我想按年龄标准对这个列表进行排序 我该怎么做 我知道在整数 字符串列表中 List Sort 有效 但
  • 以字符集安全的方式获取 Windows 上的进程列表

    这个帖子 https stackoverflow com questions 54686 how to get a list of current open windows process with java给出了一个在 Windows 下
  • 在列表列表中查找形状

    节目说明 该计划的目的 我的程序旨在计算 20X15 大小的平面中形状的位置 我有一个形状列表 其中包含形状类型 其 ID 半径或高度以及其在平面上的预期 X Y 位置 我有一个不同的二元运算列表 仅包含形状类型 其 id 及其与另一个形状
  • 如何按给定顺序对列表进行排序?

    我正在尝试执行以下操作 我有一个预定义的列表 用作给定列表上的 排序依据 my orderby car boat chicken cat dog mouse or my orderby car gt 0 boat gt 1 chicken
  • 如何返回给定长度的所有列表元素?

    我正在尝试返回具有特定长度的单词 这是我到目前为止的代码 words是一个列表并且size是一个正整数 def by size words size for word in words if len word size 我不知道如何继续 b
  • 在Python中随机化列表[重复]

    这个问题在这里已经有答案了 我想知道是否有一个好方法来 震动 Python 中的项目列表 例如 1 2 3 4 5 可能会被动摇 随机化 3 1 4 2 5 任何顺序都同样可能 from random import shuffle list
  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 列表有简短的 contains 函数吗?

    给定一个列表xs和一个值item 如何检查是否xs包含item 即 如果任何元素xs等于item 有没有类似的东西xs contains item For performance considerations see Fastest way
  • Python列表切片效率

    在下面的代码中 def listSum alist Get sum of numbers in a list recursively sum 0 if len alist 1 return alist 0 else return alist
  • 从 XML 文档生成嵌套列表

    在 python 中工作 我的目标是解析我制作的 XML 文档并创建一个嵌套的列表列表 以便稍后访问它们并解析提要 XML 文档类似于以下代码片段
  • number_in_month 练习(计算列表中的元素数)

    我一直在尝试使用 SML 对整数 3 元组列表中的元素进行计数 该列表等于给定的整数 但它不起作用 谁能帮我找出下面的代码有什么问题或者为我纠正它 fun number in month x int int int list m int i

随机推荐

  • Ubuntu18.04下CUDA10.x和TensorFlow1.x环境搭建(2019.7重编版)

    目录 前言开发环境一览 显卡驱动安装 下载驱动 禁用nouveau 安装驱动 安装CUDA 10 x第一个CUDA程序 安装cudnn7 x安装TensorFlow1 x最后 Mac和Ubuntu下修改pip源和TensorFlow CPU
  • 数通运营商方向常见面试问题(第五部分)

    VXLAN以主要应用在哪里 和传统的二层网络相比 xff0c 有什么优势7 数据中心 首先描述传统二层VPN的缺点 xff1a 传统二层要用STP 收敛慢 链路利用率低不合适 传统VPLS为解决环路会采用STP技术 xff0c CE到PE采
  • Xshell 6 首次连接虚拟机 CentOS 6.8报错:/usr/bin/xauth: file /root/.Xauthority does not exist

    首次连接虚拟机时会提示 usr bin xauth file root Xauthority does not exist xff0c xff0c 这个没关系 xff0c 系统在连接之后会自动创建 xff0c 再次连接时就好了 如下图 xf
  • 一个不喜欢读书的Javaer的读书单

    很可惜 xff0c 从我一开始学技术开始 xff0c 我就不喜欢看书 xff0c 严重的时候翻不到两页就会开始狂打瞌睡 很幸运 xff0c 有互联网能够为我提供很多知识 xff0c 甚至一些知识从网上看来的会更加权威一些 但是 xff0c
  • 【分享】Ubuntu桌面版图形界面下换源

    写在前面 xff1a 由于操作极其简单 xff0c 所以一开始还犹豫要不要单独写篇文章 xff0c 但是后来上网查了以下 xff0c 发现主流都是修改sources list文件的方法 xff08 这种方法的教程见下面的连接 xff0c 这
  • java 之产生死锁的必要条件

    1 死锁 怎么去打破 1 死锁发生的原因 是多个进程并发请求 争夺系统资源而产生的相互等待情况 2 本质问题 xff1a 1 系统资源有限 2 进程推进顺序不合理 3 死锁产生的4个必要条件 xff1a 3 1 进程互斥 资源分配给进程之后
  • MAC 安装tree : fatal error: 'stdlib.h' file not found

    MAC 安装tree fatal error 39 stdlib h 39 file not found 未安装 Command Line Tools命令行工具 xff0c 安装步骤如下 xff1a 在终端中输入 xcode select
  • blog记录

    blog记录 blog整理linux内核redis云 43 负载均衡算法git blog整理 linux内核 https blog csdn net gatieme article category 9265324 Linux内核剖析 xf
  • Git撤销&回滚操作(git reset 和 get revert)

    git 工作流 xff1a 工作区 xff1a 即自己当前分支所修改的代码 xff0c git add xx 之前的 xff01 不包括 git add xx 和 git commit xxx 之后的 暂存区 xff1a 已经 git ad
  • 51单片机——计数器与定时器的区别

    定时器和计数器是同一器件 计数器 其共同的特点是都有一个计数脉冲输入端 每输入一个脉冲 计数器就进行加1或减1计数 若计数器件的计数脉冲的频率固定 则可利用计数实现定时 这就是定时器 若计数器件的作用仅仅是记录输入脉冲的多少 则称为计数器
  • git学习笔记

    本地仓 lt gt 暂存区 lt gt 版本库 撤销 xff1a 已修改的文件test c xff0c 撤销 git checkout test c 必须要 xff0c 不然就会切换分支已修改的文件并使用 git add 添加到暂存区 gi
  • github提交代码-简介

    使用步骤 在 github 上 fork 一个项目到自己的仓库 需要先fork xff0c 因为原始项目没有权限git clone https github com name repos git 从自己的仓下 clone代码到本地修改本地代
  • linux时间相关结构体和函数整理

    一 时间类型 Linux下常用的时间类型有4个 xff1a time t xff0c struct timeb struct timeval xff0c struct timespec xff0c clock t struct tm 1 t
  • xargs 命令

    xargs xargs 命令 用途 构造参数列表并运行命令 大多数 Linux 命令都会产生输出 xff1a 文件列表 字符串列表等 但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办 xff1f 例如 xff0c file 命令
  • fedora20安装putty No package ‘gtk+-2.0′ found

    这里转载一下 我在编译安装emacs23的时候提示No package gtk 43 2 0 found centos的开发环境 网上搜了一下 xff0c 发现安装gtk 43 2 0不是一件容易的事 xff0c 后来无意发现一个帖子挺不错
  • Reverse Words in a String

    Given an input string reverse the string word by word For example Given s 61 34 the sky is blue 34 return 34 blue is sky
  • Linked List Cycle

    Given a linked list determine if it has a cycle in it Follow up can you solve it without using extra space 最初代码 xff0c 错误
  • Linked List Cycle II

    Given a linked list return the node where the cycle begins If there is no cycle return null Follow up Can you solve it w
  • Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation Valid operators are 43 Each operand may be an
  • Insertion Sort List

    Sort a linked list using insertion sort 对一个线性链表排序 xff0c 维护两对指针即可 ListNode insertionSortList ListNode head if head return