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...