c++int Sort_L(LinkList &L) {//将图书按照价格降序排序 /**************begin************/ /**************end************/ }
时间: 2023-08-29 21:05:29 浏览: 85
排序算法(用C++描述)
以下是一个简单的链表排序算法,可以按照价格降序排序:
```c++
int Sort_L(LinkList &L) {
if (L == NULL || L->next == NULL) {
return 0;
}
ListNode* pre, * cur, * tail;
pre = L;
tail = NULL;
while (pre->next != tail) {
cur = pre->next;
while (cur->next != tail) {
if (cur->data.price < cur->next->data.price) {
Book temp = cur->data;
cur->data = cur->next->data;
cur->next->data = temp;
}
cur = cur->next;
}
tail = cur;
}
return 1;
}
```
这个算法使用了冒泡排序的思想,每次从头到尾扫描链表,将相邻两个节点进行比较,如果前一个节点的价格比后一个节点高,就交换它们的数据。每一轮扫描都会将当前未排序部分的最大值移动到最后面,因此每轮扫描可以缩小排序范围。
需要注意的是,这个算法只适用于单链表,如果您使用的是双向链表或循环链表,需要相应地修改算法。
阅读全文