要实现简单选择排序算法,可以按照以下步骤进行:

  1. 定义单链表的节点结构,包括一个数据域和一个指针域。
  2. 定义一个链表的头节点,并初始化为空链表。
  3. 读取输入的数据,逐个创建节点,并将其插入到链表中。
  4. 定义一个指针p,指向链表的头节点。
  5. 使用两个指针p和q,分别指向当前最小值节点和当前节点。
  6. 从头节点开始遍历链表,找到最小值节点,并将其与当前节点交换数据。
  7. 重复步骤6,直到链表中的所有节点都被遍历。
  8. 输出排序后的链表。

下面是一个示例代码实现:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

def selection_sort(head):
    if not head or not head.next:
        return head

    p = head
    while p:
        min_node = p
        q = p.next
        while q:
            if q.data < min_node.data:
                min_node = q
            q = q.next
        p.data, min_node.data = min_node.data, p.data
        p = p.next

    return head

# 创建链表
nums = [5, 3, 8, 2, 1]
head = Node(nums[0])
p = head
for i in range(1, len(nums)):
    node = Node(nums[i])
    p.next = node
    p = p.next

# 排序链表
head = selection_sort(head)

# 输出排序后的链表
p = head
while p:
    print(p.data, end=' ')
    p = p.next

运行以上代码,输出结果为:1 2 3 5 8,表示链表已经按照从小到大的顺序排序完成。

单链表选择排序算法实现 - Python 代码示例

原文地址: https://www.cveoy.top/t/topic/fwVg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录