给排序添加一个判断为空或只有一个元素 添完就无法运行..有没有大佬看一下
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
#include <locale.h>
typedef struct Node
{
int data;
struct Node *next;
}LNode, *LinkList;
void QuickSort2(LinkList head, LinkList tail){
if(head == tail) //如果头指针为空或者链表为空,直接返回
return ;
//if (head->next == tail || head->next->next == tail)
//return;
int t;
LinkList p = head -> next;
LinkList small = head;
while( p != tail){
if(p -> data < head -> data){
small = small -> next;
t = small -> data;
small -> data = p -> data;
p -> data = t;
}
p = p -> next;
}
t = head -> data;
head -> data = small -> data;
small -> data = t;
QuickSort2(head, small);
QuickSort2(small -> next, tail);
}
void create_list(LinkList *L) {
int i;
int n;
LinkList head,p,q;
*L = ( struct Node *)malloc(sizeof(LNode));
p = *L;
head = NULL;
p->data = -1;
p->next = NULL;
printf("请输入您需要生成的结点个数:");
scanf("%d", &n);
for(i = 0; i < n; i++) {
q=(struct Node *)malloc(sizeof(LNode));
if (NULL==q) exit(1);
q->data=rand()%100;
q->next=NULL;
if (NULL==p) {
head=q;
p=head;
} else {
p->next=q;
p=q;
}
}}
void traverse_list(LinkList L) {
LinkList p = L->next;
while(NULL != p) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return;
}
main(){
LinkList La = NULL;
clock_t start, finish;
double duration;
create_list(&La);
//printf("排序前:\n");
traverse_list(La);
//InitList(&La);
//start=clock();
QuickSort2(La,NULL);
//finish=clock();
//printf("排序后:\n");
traverse_list(La);
//duration = (double)(finish - start) / CLOCKS_PER_SEC;
//printf( "%f seconds\n", duration );
return 0;
}完整代码都贴这了,想改的是函数注释的那一行
相关推荐
高校及科研院所如何利用外部数据完善技术转移转化机制.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)
内容概要:本文档围绕“【完全复现】虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比”这一主题,利用Simulink和Matlab平台,系统性地实现了虚拟同步发电机(VSG)的自适应惯量与阻尼控制策略的建模与仿真。内容涵盖VSG的核心控制原理、系统动态响应特性分析、根轨迹绘制以及在不同调节系数下的性能对比研究,旨在深入剖析关键控制参数对系统稳定性与动态性能的影响机制,为新能源并网系统中提升频率支撑能力和暂态稳定性的控制策略设计提供理论依据和技术支持。; 适合人群:具备扎实的电力系统分析与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,主要从事新能源发电、微电网运行、电力电子变换器控制或电力系统稳定研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展虚拟同步发电机(VSG)的建模与先进控制策略的深入研究;②探究自适应惯量与阻尼控制对改善电网频率响应速度和平抑功率波动的作用机理;③运用根轨迹法进行系统稳定性分析,并指导控制器参数的优化整定;④完成高水平学术论文撰写或科研项目申报所需的仿真复现实验。; 阅读建议:本资源以“完全复现”为核心目标,提供了完整的仿真模型与配套代码。使用者应在深入理解同步发电机转子运动方程、虚拟惯量及阻尼物理意义的基础上,结合电力系统暂态稳定理论,逐步操作并调试仿真模型,尤其需关注不同调节系数变化对系统动态性能指标(如超调量、调节时间)的影响,从而深化对VSG内在控制机制与稳定边界的认知。
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-dQ4ehf7C1792158475
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;DtPXB1792158476
员工满意度数据集(11列,12000 条记录)CSV 合成
详情介绍:该 HR 员工数据集含 12,000 条 ×11 列(满意度、绩效评估、项目数、月均工时、司龄、工伤、福利包、晋升、部门、薪资),无缺失值但无离职标签列,且存在数据质量问题(141 条负绩效评估、144 条负工时、49.4% 异常高工伤率、项目数仅 0/1/2),疑似经过修改或合成,不能直接做经典的员工离职预测,适合做满意度回归、薪资三分类、晋升预测或员工聚类分析,使用前必须清洗异常值并注意数据真实性限制。
科技服务机构如何通过数据服务增强市场竞争力?.docx
科技服务机构如何通过数据服务增强市场竞争力?


新手乐园
