文章
7
粉丝
211
获赞
10
访问
37.4k
// 冒泡排序优化
void sortList(LinkList &L, int n) {
Node *p, *q;
int temp, k = n - 1, s;
bool flag; // 是否有序
for (int i = 0; i < n; i++) {
p = L;
q = L->next; // 从头开始
s = 0;
flag = true;
for (int j = 0; j < k; j++) {
if (p->data > q->data) {
temp = p->data;
p->data = q->data;
q->data = temp;
s = j; // 更新交换位置
flag = false;
}
p = q;
q = q->next;// 往后移动
}
if (flag) break; // 没发生交换,已经有序
k = s; // 更新下次循环结束位置
}
}
登录后发布评论
暂无评论,来抢沙发