单链表选择排序算法实现 - Python 代码示例
要实现简单选择排序算法,可以按照以下步骤进行:
- 定义单链表的节点结构,包括一个数据域和一个指针域。
- 定义一个链表的头节点,并初始化为空链表。
- 读取输入的数据,逐个创建节点,并将其插入到链表中。
- 定义一个指针p,指向链表的头节点。
- 使用两个指针p和q,分别指向当前最小值节点和当前节点。
- 从头节点开始遍历链表,找到最小值节点,并将其与当前节点交换数据。
- 重复步骤6,直到链表中的所有节点都被遍历。
- 输出排序后的链表。
下面是一个示例代码实现:
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,表示链表已经按照从小到大的顺序排序完成。
原文地址: https://www.cveoy.top/t/topic/fwVg 著作权归作者所有。请勿转载和采集!