//链表直接选择排序
void bubSort(ListNode *L){
ListNode *p1,*p2,*p3; //p3记录最小值的节点
int i,j,min;
for (p1=L->next,i=0; i<NumMaxSize-1&&p1!=NULL;i++, p1=p1->next) { //共选择遍历n-1次
min=p1->data;
p3=p1;
for (p2=p1->next,j=i+1; j<NumMaxSize; j++,p2=p2->next) { //每次找到最小值的节点
if(min>p2->data){
min=p2->data;
p3=p2;
}
}
if(p3!=p1){ //如果不是p1所指节点,则交换
p3->data=p1->data;
p1->data=min;
}
}
}
结构体:
typedef struct Node{
Datatype data;
struct Node *next;
}ListNode;
单链表的直接选择排序
最新推荐文章于 2024-05-17 21:03:41 发布