首页 > 其他分享 >数据结构实验10

数据结构实验10

时间:2025-01-10 17:14:57浏览次数:1  
标签:10 int Qsort elem high 实验 low SqList 数据结构

6-4 快速排序

本题要求实现快速排序的一趟划分函数,待排序列的长度1<=n<=1000。

函数接口定义:
int Partition ( SqList L, int low, int high );
其中L是待排序表,使排序后的数据从小到大排列。

类型定义:

typedef int KeyType;
typedef struct
{
KeyType elem; /elem[0]一般作哨兵或缓冲区*/
int Length;
}SqList;
裁判测试程序样例:

include<stdio.h>

include<stdlib.h>

typedef int KeyType;
typedef struct
{
KeyType elem; /elem[0]一般作哨兵或缓冲区/
int Length;
}SqList;
void CreatSqList(SqList L);/待排序列建立,由裁判实现,细节不表
/
int Partition ( SqList L,int low, int high );
void Qsort ( SqList L,int low, int high );
int main()
{
SqList L;
int i;
CreatSqList(&L);
Qsort(L,1,L.Length);
for(i=1;i<=L.Length;i++)
printf("%d ",L.elem[i]);
return 0;
}
void Qsort ( SqList L,int low, int high )
{
int pivotloc;
if(low<high)
{
pivotloc = Partition(L, low, high ) ;
Qsort (L, low, pivotloc-1) ;
Qsort (L, pivotloc+1, high );
}
}
/*你的代码将被嵌在这里 */
输入样例:
第一行整数表示参与排序的关键字个数。第二行是关键字值 例如:

10
5 2 4 1 8 9 10 12 3 6
输出样例:
输出由小到大的有序序列,每一个关键字之间由空格隔开,最后一个关键字后有一个空格。

1 2 3 4 5 6 8 9 10 12

int Partition(SqList L,int low,int high){ L.elem[0]=L.elem[low]; int pivotkey=L.elem[0]; while(low<high){ while(low<high&&L.elem[high]>=pivotkey) high--; L.elem[low]=L.elem[high]; while(low<high&&L.elem[low]<=pivotkey) low++; L.elem[high]=L.elem[low]; } L.elem[low]=L.elem[0]; return low; }

标签:10,int,Qsort,elem,high,实验,low,SqList,数据结构
From: https://www.cnblogs.com/LiuHuWei/p/18664281

相关文章

  • uml实验一
    统一建模语言实验题目申请单班级 信2305-3姓名 徐戌学号 20234316系统名称 酒店预约系统系统描述(初步)应用目的:通过信息化手段提升酒店的运营效率、管理水平和客户服务质量,帮助酒店在运营、管理、财务、客户服务等方面实现自动化、数据化和智能化进而实现酒店资源的合......
  • uml实验四
    实现视图模型建模班级:信2305-3学号:20234316姓名:20234316一实验目的 理解顺序图、协作图、活动图、状态机图的概念及其在系统分析设计中的作用; 了解和掌握软件工程中用例逻辑时序的分析方法; 掌握两种交互图(顺序图和协作图)的差别; 掌握描述一个操作执......
  • uml实验三
    逻辑视图模型建模班级:信2305-3学号:20234316姓名:徐戌一实验目的 理解面向对象系统分析和对象类建模的概念; 了解和掌握面向对象系统分析的方法和步骤; 了解和掌握寻找待开发系统中类的方法和技巧; 了解和掌握分析类之间继承关系的方法; 了解和掌握分析类......
  • 数据结构实验1
    7-1线性表A,B顺序存储合并有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素。元素类型为整型输入格式:第一行输入输入表A的各个元素,以-1结束,中间用空格分隔;第二行输入表B的各个元素,以-1结束,中间用空格分隔。输......
  • uml实验五
    部署视图模型建模班级:信2305-3学号:20234316姓名:徐戌一实验目的 了解系统物理体系结构模型和表示方法; 了解部署图的概念及其在系统设计中的作用; 掌握使用RationalRose绘制部署图的方法;二实验环境及实验准备 所需硬件环境为微机; 所需软件环境为Ra......
  • 数据结构实验二
    石家庄铁道大学实验报告课程名称:信2305-3 任课教师:刘丹 实验日期:2024.12.11班级:信2305-3 姓名:徐戌 学号:20234316实验项目名称:实验二一、 实验目的1.掌握栈的定义及......
  • 数据结构实验一
    石家庄铁道大学实验报告课程名称:数据结构与算法设计 任课教师:刘丹 实验日期:2024.12.11班级:信2305-3 姓名:徐戌 学号:20234316实验项目名称:实验一一、 实验目的掌握顺序表的......
  • 数据结构实验2
    7-2双向循环链表应用已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,实现交换p所指向的结点和它的前缀结点的顺序。输入格式:第一行输入元素个数,第二行输入元素值,第三行输入要交换的元素值,第四行输出结果。输出格式:输出交换后的结果,中间不用空格分......
  • 数据结构实验三
    石家庄铁道大学实验报告课程名称:信2305-3 任课教师:刘丹 实验日期:2024.12.15班级:信2305-3 姓名:徐戌 学号:20234316实验项目名称:实验三一、 实验目的1.掌握二叉树的定......
  • 数据结构实验五
    石家庄铁道大学实验报告课程名称:数据结构与算法设计 任课教师:刘丹 实验日期:2024.12.15班级:信2305-3 姓名:徐戌 学号:20234316实验项目名称:实验五一、 实验目的1.掌握散列表......