以单链表为存储结构,实现简单选择排序算法
时间: 2023-04-28 16:02:57 浏览: 203
单链表上的简单选择排序算法
5星 · 资源好评率100%
单链表的简单选择排序算法实现步骤如下:
1. 定义一个指针p,指向链表的头结点。
2. 从头结点开始遍历链表,找到链表中最小的节点,并记录下该节点的前驱节点pre和最小节点min。
3. 将最小节点min从链表中删除,并将其插入到pre节点之后。
4. 重复步骤2和步骤3,直到链表中所有节点都被排序。
具体实现代码如下:
```
void selectSort(Node *head) {
Node *p = head->next;
while (p != NULL) {
Node *pre = p;
Node *min = p;
Node *q = p->next;
while (q != NULL) {
if (q->data < min->data) {
pre = p;
min = q;
}
q = q->next;
}
if (min != p) {
pre->next = min->next;
min->next = p->next;
p->next = min;
}
p = p->next;
}
}
```
其中,Node表示链表节点的结构体,包含一个数据域data和一个指向下一个节点的指针next。head表示链表的头结点,不存储数据。
阅读全文