📌  相关文章
📜  用于在单链表中进行插入排序的Python程序(1)

📅  最后修改于: 2023-12-03 14:56:20.029000             🧑  作者: Mango

插入排序单链表Python程序介绍

插入排序(Insertion Sort)是一种简单直观的排序算法,其基本思想是将一个记录插入到已经有序的有序表中,构造一个新的有序表。在单链表中进行插入排序,需要移动指针来实现插入排序。下面我们介绍一个用于在单链表中进行插入排序的Python程序。

代码实现
class Node:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
def insertionSortList(head: Node) -> Node:
    dummy = Node(-1)
    cur = head
    while cur:
        pre = dummy
        while pre.next and pre.next.val < cur.val:
            pre = pre.next
        tmp = cur.next
        cur.next = pre.next
        pre.next = cur
        cur = tmp
    return dummy.next
代码解释
  • 定义一个 Node 类,包含两个属性: valnext
  • 定义一个 insertionSortList 函数,接收一个单链表头节点 head
  • 定义一个 dummy 节点,用于记录插入排序后的链表头节点。
  • 定义一个 cur 节点,用于遍历原链表。
  • 在 while 循环中,比较 pre.next 节点和 cur 节点的值,并移动 pre 节点。
  • 通过 tmp 节点记录 cur.next,并将 cur 节点插入到 pre.nextpre 节点之间。
  • 移动 cur 节点到下一个节点。
  • 返回 dummy.next 节点作为插入排序后的链表头节点。
总结

通过这个Python程序实现,在单链表中进行插入排序,可以方便地对单链表进行排序操作。同时,也可以通过对链表节点 Node 类的属性进行修改,对链表节点进行更多的操作。