数据结构实验八内部排序

发布 2019-07-11 11:12:37 阅读 4242

1、掌握内部排序的基本算法;

2、分析比较内部排序算法的效率。

1. 运行下面程序:

#include <>

#include <>

#define max 50

int slist[max]; 待排序序列*/

void insertsort(int list,int n);

void createlist(int list,int *n);

void printlist(int list,int n);

void heapadjust(int list,int u, int v);

void heapsort(int list,int n);

*直接插入排序*/

void insertsort(int list,int n)

int i = 0, j = 0, node = 0, count = 1;

printf("对序列进行直接插入排序:");

printf("初始序列为:");

printlist(list, n);

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

list[j+1] =node;

printf("第%d次排序结果:", count++)

printlist(list, n);

*堆排序*/

void heapadjust(int list,int u, int v)

int i = u, j = 0, temp = list[i];

if(u ==0) /判断数组下标,确定list[u]的左孩子的下标*/

elsewhile (j <=v)

if(temp < list[j])

elsebreak; /筛选完成,终止循环*/

list[i] =temp; /被筛结点的值放入最终位置*/

void heapsort(int list,int n)

int i = 0, temp = 0, count = 1;

printf("对序列进行堆排序:");

printf("初始序列为:");

printlist(list, n);

for (i = n - 1) /2; i >=0; i--)

printf("建立的初始堆为:");

printlist(list, n);

for(i = n - 1; i >=1; i--)

*生成待排序序列*/

void createlist(int list,int *n)

int i = 0,a;

printf("请输入待排序序列(长度小于50,以输入一个字符结束):");

while(scanf("%d",&a)==1)

*n=i;getchar();

*输出排序结果*/

void printlist(int list,int n)

int i = 0;

for(; i < n; i++)

printf("");

int main()

int choice=1,length;

while(choice!=0)

printf("");

return 0;

输入待排序序列:49 38 65 97 13 27 49(以输入一个字符作为结束)

1)直接插入排序运行结果:

2)堆排序运行结果:

2、在1题中补充希尔排序算法。

算法**:运行结果:

3、在1题中补充快速排序算法。

算法**;运行结果:

三、实验小结。

请比较各个排序算法的性能。

四、教师评语。

数据结构实验四数组的运算

实验四数组的运算。实验目的 掌握稀疏矩阵的压缩存储方法及主要运算的实现。实验内容与要求 设计一个稀疏矩阵计算器,要求能够 输入并建立稀疏矩阵 输出稀疏矩阵 执行两个矩阵相加 执行两个矩阵相乘 求一个矩阵的转置矩阵 求一个矩阵的逆矩阵 选做 算法设计 include define maxsize 10...

数据结构实验之结构体与共同体

实验三 结构体和共用体。include include typedef char elemtype typedef struct node r next null return h void listinsert linklist l,int i,elemtype e if p j i 1 s li...

数据结构实验二叉树

下列程序中的统计二叉树结点的函数,是对二叉树遍历方法的应用,请认真理解然后模仿练习。二叉树的建立与遍历 include include typedef int etype typedef struct bitnode 树结点结构体 bitnode 函数原形声明 bitnode creat bt1 b...