好文档 - 专业文书写作范文服务资料分享网站

排序综合课程设计报告

天下 分享 时间: 加入收藏 我要投稿 点赞

};

2.3、各种操作函数:

(1)创建一个数组函数:int creat();

(2)输出数组函数:void print(struct element a[20],int n); (3)保存函数:void save(struct element a[SIZE],int n, char [] ) (4)直接插入排序函数:void insert_sort(element a[], int n) (5)希尔排序函数:void shell(struct element a[20],int n);

(6)快速排序函数(分区处理函数):int hoare(struct element a[20],int l,int h); (7)非递归的快速排序函数:void quick1(struct element a[20],int n); (8)递归的快速排序函数:void quick2(struct element a[20],int l,int h); (9)堆排序(调整堆的函数):void heap(struct element a[20],int i,int m); (10)堆排序(主体函数):void heapsort(struct element a[20],int n); (11)时间函数:start = clock();end = clock();

2.4、主函数

Void main() {

接受命令(选择要执行的操作); 处理命令; 输出结果; }

3、 详细设计

3.1、程序源代码:

#include #include #include #include

#define SIZE 1000000

1 / 1

struct element {

int key;

}list[SIZE];

///////创建一个数组////////

int creat() {

int i,n;

int num; n=0;

printf(\请输入元素个数:\

scanf(\ for( i = 0;i < num; i++ ) { list[n].key = rand() % 10000; n++;

} return(n);

}

/////////////输出数组/////////////

void print(struct element a[SIZE],int n) {

int i;

1 / 1

for(i=0;i

printf(\}

/////////////保存到文件/////////////

void save(struct element a[SIZE],int n, char [] ) {

int m_wr=0; // 写入TXT文件变量

FILE *fp;

if ( ( fp = fopen ( , \ printf(\

for (int m=0; m

//////////////////// 直接插入排序///////////////////

void insert_sort(element a[], int n) {

int i, j; element next; for(i=1; i

1 / 1

{ }

m_wr = a[m].key;

fprintf ( fp, \ // 写入TXT中

fclose ( fp );

}

}

next = a[i];

for(j=i-1;j>=0 && next.key < a[j].key;j--)

a[j+1].key=a[j].key;

a[j+1]=next;

printf(\输出直接插入排序的结果:\\n\

/////////////////希尔排序//////////////////////

void shell(struct element a[SIZE],int n) {

int i,j,k; for(i=n;i>=1;i--)

a[i].key=a[i-1].key;

k=n/2; while(k>=1) {

for(i=k+1;i<=n;i++) { }

1 / 1

a[0].key=a[i].key; j=i-k;

while((a[j].key>a[0].key)&&(j>=0)) { }

a[j+k]=a[0];

a[j+k].key=a[j].key; j=j-k;

}

}

k=k/2;

for(i=0;i

printf(\输出希尔排序的结果:\\n\

////////////////////快速排序///////////////////////////

int hoare(struct element a[SIZE],int l,int h)//分区处理函数 {

int i,j;

struct element x; i=l; j=h;

x.key=a[i].key; do {

while((i=x.key))

j--;

if(i

while((i

i++;

a[i].key=a[j].key; i++;

if(i

1 / 1

排序综合课程设计报告

};2.3、各种操作函数:(1)创建一个数组函数:intcreat();(2)输出数组函数:voidprint(structelementa[20],intn);(3)保存函数:voidsave(structelementa[SIZE],intn,char[])(4)直接插入排序函数:voidin
推荐度:
点击下载文档文档为doc格式
2ef553yq337yqpo85se79mzf00wron00iua
领取福利

微信扫码领取福利

微信扫码分享