数据结构上机实验报告10.1和10.4

更新时间:2023-05-19 05:37:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

数据结构上机实验报告(实验六)

课程名称:数据结构教程

指导教师:

上机实践名称:排序

一、 实验思路

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。

10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

二、关键代码

#include <stdio.h>

#define MaxSize 15

typedef char InfoType[10];

typedef int KeyType;

typedef struct

{

KeyType key; InfoType data; 专业班级: 姓名: 学号:2

}RecType;

void InsertSort(RecType R[],int n)

{

int i,j,k; RecType tmp; for (i=1;i<n;i++) { tmp=R[i]; j=i-1; while (j>=0 && tmp.key<R[j].key) { } R[j+1]=tmp; printf("i=%d: ",i); 1 R[j+1]=R[j]; j--;

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

}

} for (k=0;k<n;k++) printf("%d ",R[k].key); printf("\n");

void main()

{

}

#include <stdio.h>

#define MaxSize 15

int n=10;//全局变量

int i1=1;//作为输出排序过程的计数变量

typedef char InfoType[10];

typedef int KeyType;

typedef struct

{

int i,n=10; RecType R[MaxSize]; KeyType a[]={9,8,7,6,5,4,3,2,1,0}; for(i=0;i<n;i++) R[i].key=a[i]; printf("排序前: "); for(i=0;i<n;i++) printf("%d ",R[i].key); printf("\n"); //排序 printf("排序过程:\n"); InsertSort(R,n); printf("排序后: "); for(i=0;i<n;i++) printf("%d ",R[i].key); printf("\n"); KeyType key; InfoType data; 2

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

void QuickSort(RecType R[],int s,int t)

{

}

3

int i=s,j=t; RecType tmp; if(s<t) { } tmp=R[s]; while(i!=j) { } R[i]=tmp; //输出这次的排序过程 if(i1<=10) { } for(int ii=0;ii<n;ii++) printf("\n"); QuickSort(R,s,i-1); QuickSort(R,i+1,t); printf("%d ",R[ii].key); printf("第%d步: ",i1); i1++; while(j>i && R[j].key>tmp.key) { } R[i]=R[j]; while(i<j && R[i].key<tmp.key) { } R[j]=R[i]; i++; j--;

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

{

int i;

RecType R[MaxSize];

KeyType a[]={6,8,7,9,0,1,3,2,4,5};

for(i=0;i<n;i++)

{

R[i].key=a[i];

}

//输出排序前顺序

printf("排序前: ");

for(i=0;i<n;i++)

printf("%d ",R[i].key);

printf("\n\n");

//快速排序

QuickSort(R,0,n-1);

printf("\n排序后: ");

for(i=0;i<n;i++)

printf("%d ",R[i].key);

printf("\n");

}

三、 运行结果

4

10.1 编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。10.4 编写一个程序实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程。

四、 体会

通过编写了这两段程序,对直接插入排序和快速排序有了基本的了解和掌握,同时对编程有了更深的体会。

5

本文来源:https://www.bwwdw.com/article/63n4.html

Top