本次选做的是链式简单选择排序问题。本次课题要求使用
C语言实现链式简单选择排序,具体要求如下:
1. 编写一个函数,实现链式简单选择排序的功能;
2. 函数的参数为需要进行排序的链表头节点地址。
3. 函数返回值为无。
#include <stdio.h>
#include <stdlib.h>
typedef struct Node { // 链表节点
int data; // 数据域
struct Node *next; // 指向后一个节点的指针
}Node, *LinkList; // LinkList是Node*的别名
/* 链式简单选择排序 */ // 对于任意i<j,L[i]<=L[j] 保证有序性。
void LinksimpleSelectSort(LinkList L) { // L是头节点地址
Node *p, *q, *min; // p、q用来遍历链表,min用来存储本趟最小元所在位置
for (p = L->next; p != NULL; p = p->next) { // 遍历L中所有元 素
min = p; // min存储当前p之前的未处理部分中最小元所在位置
for (q = p->next; q != NULL; q = q->next) { // 在当前p之后寻找未处理部分中未处理部分中未处理部分中的 本趟末尾位 置
if (min->data > q->data) // 若当前q是相对于p之后尚 未遗留出来的元中 本趟内待考察元中 扫出来得 本 趟内待考察元中 扫出来得 本 趟内待考實便民价格
min = q; /// min存储当前q之前的未处理部分中相对于p之后尚 未遗留出来的元中 本趟内待考實便民价格
} /// (泡泡泡泡泡泡泡) /// /// /// /// /// /// /// if (min != p) { /* min不是原始位 置时 */ /* 否则不必进行交 替 */ int temp = min->data ; /* 交 替 */ min->data=p -> data ; p -> data=temp ; } } }
这是GPT3.5公开提问版,永久免费。如需更加智能的一对一私密会话,请前往ChatGPT+AI绘画 多功能版(极速响应),登录即送10次提问体验。
ChatGPT中文网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!