
冒泡的链表

比较两个相邻元素的大小,每遍将向后放置较大(或较小)的数字. 链表气泡排序思路: 设置两个指针c语言单链表排序,一个是当前指针,另一个是尾指针,当前指针指向头节点,并且尾指针分配为null. 当当前指针不等于尾指针时,它是一个循环,第一次将当前节点的值与下一个节点的值进行比较c语言单链表排序,直到下一个节点与尾指针相等(即为空) ),循环结束,最后将当前指针分配给尾指针,当前指针再次指向头节点,然后将两者进行比较,将最大(或最小)数放在末尾 p>

//冒泡排序的主要思想两两相性比较,每比较一次会把一轮最大或最小的数放在最后
void BubbleSort(struct student *head){
struct student *cur,*tail;
cur=head;
tail=NULL;
if(cur==NULL||cur->next==NULL){
return;
}
while(cur!=tail){
while(cur->next!=tail){
if(cur->score>cur->next->score){
int temp=cur->score;
cur->score=cur->next->score;
cur->next->score=temp;
long temp1=cur->num;
cur->num=cur->next->num;
cur->next->num=temp1;
}
cur=cur->next;
}
tail=cur;
cur=head;
}
}

选择顺序:

选择和排序的想法是将当前元素与以下元素进行比较,并在每次循环时将最大或最小元素分配给当前元素.
//选择排序
void SelectedSort(struct student *head){
struct student *cur,*p=NULL,*q=NULL;
cur=head;
int score=0,cscore=0;
if(cur==NULL||cur->next==NULL){
return;
}
while(cur!=NULL){
p=cur->next;
q=cur->next;
score=cur->score;
cscore=score;
while(p!=NULL){
if(cscore>p->score){
cscore=p->score;
q=p;
}
p=p->next;
}
if(score!=cscore){
q->score=score;
cur->score=cscore;
long temp=cur->num;
cur->num=q->num;
q->num=temp;
}
cur=cur->next;
}
}
链接列表排序的源代码(可测试):
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-286017-1.html
美国连家庭住宅都不可侵犯
一点都不
以前工资十来元到几十几百元