您的位置:首页 > 新闻 > 会展 > 买东西最便宜的购物软件_谷歌网站关键词优化_专业网站建设_百度招商加盟推广

买东西最便宜的购物软件_谷歌网站关键词优化_专业网站建设_百度招商加盟推广

2024/12/28 22:54:25 来源:https://blog.csdn.net/lowkeyyh/article/details/144421409  浏览:    关键词:买东西最便宜的购物软件_谷歌网站关键词优化_专业网站建设_百度招商加盟推广
买东西最便宜的购物软件_谷歌网站关键词优化_专业网站建设_百度招商加盟推广

目录😋

任务描述

测试说明

我的通关代码:

测试结果:


任务描述

本关任务:实现快速排序算法。

测试说明

平台会对你编写的代码进行测试:

测试输入示例:
10
6 8 7 9 0 1 3 2 4 5 
(说明:第一行是元素个数,第二行是待排序的原始关键字数据。)

输出示例:
排序前:6 8 7 9 0 1 3 2 4 5 
第1次划分:  5  4  2  3  0  1  6  9  7  8
第2次划分:  1  4  2  3  0  5
第3次划分:  0  1  2  3  4
第4次划分:        2  3  4
第5次划分:           3  4
第6次划分:                       8  7  9
第7次划分:                       7  8
排序后:0 1 2 3 4 5 6 7 8 9 

开始你的任务吧,祝你成功!


我的通关代码:

#include <malloc.h>
#include <stdio.h>#define MAXL 100     //最大长度
typedef int KeyType; //定义关键字类型为int
typedef char InfoType;typedef struct {KeyType key;   //关键字项InfoType data; //其他数据项,类型为InfoType
} RecType;       //查找元素的类型void CreateList(RecType R[], KeyType keys[], int n) //创建顺序表
{for (int i = 0; i < n; i++) // R[0..n-1]存放排序记录R[i].key = keys[i];
}
void DispList(RecType R[], int n) //输出顺序表
{for (int i = 0; i < n; i++)printf("%d ", R[i].key);printf("\n");
}//显示一趟划分后的结果
void disppart(RecType R[], int s, int t) {/********** Begin *********/for (int i = 0; i < s; i++)printf("    ");for (int i = s; i <= t; i++)printf("%3d ", R[i].key);printf("\n");/********** End **********/
}//一趟划分
int partition(RecType R[], int s, int t) {/********** Begin *********/KeyType pivot = R[s].key; // 从 RecType 中提取 key 字段while (s < t) {while (s < t && R[t].key >= pivot)t--;R[s] = R[t];while (s < t && R[s].key <= pivot)s++;R[t] = R[s];}R[s].key = pivot; // 将 pivot 的值赋回 R[s].keyreturn s;/********** End **********/
}//对R[s..t]的元素进行递增快速排序
void QuickSort(RecType R[], int s, int t, int *count) {/********** Begin *********/int pivotpos;if (s < t) {(*count)++;                      // 增加划分次数printf("第%d次划分:", *count); // 输出划分次数提示信息pivotpos = partition(R, s, t);disppart(R, s, t);QuickSort(R, s, pivotpos - 1, count);QuickSort(R, pivotpos + 1, t, count);}/********** End **********/
}int main() {/********** Begin *********/int n;scanf("%d", &n);KeyType keys[MAXL];RecType R[MAXL];for (int i = 0; i < n; i++)scanf("%d", &keys[i]);CreateList(R, keys, n);printf("排序前:");DispList(R, n);int count = 0; // 初始化划分次数QuickSort(R, 0, n - 1, &count);printf("排序后:");DispList(R, n);/********** End **********/return 0;
}

测试结果:


在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com