没有合适的资源?快使用搜索试试~ 我知道了~
用随机数产生100000个待排序数据元素的关键字值。测试下列各排序函数的机器实际执行时间(至少测试两个):直接插入排序、希尔排序(增量为4,2,1)、冒泡排序、快速排序、直接选择排序、二路归并排序、堆排序和基于链式队列的基数排序。
资源推荐
资源详情
资源评论
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXSIZE 100000
typedef int KeyType;
typedef int InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length;
}SqList;
/*直接插入排序*/
void InsertSort(SqList *L)
{
int i,j;
for(i=2;i<=L->length;++i)
if (L->r[i].key<L->r[i-1].key)
{
L->r[0]=L->r[i];
for(j=i-1;L->r[0].key<L->r[j].key; --j)
L->r[j+1]=L->r[j];
L->r[j+1]=L->r[0];
}
}
#include <stdlib.h>
#include <time.h>
#define MAXSIZE 100000
typedef int KeyType;
typedef int InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length;
}SqList;
/*直接插入排序*/
void InsertSort(SqList *L)
{
int i,j;
for(i=2;i<=L->length;++i)
if (L->r[i].key<L->r[i-1].key)
{
L->r[0]=L->r[i];
for(j=i-1;L->r[0].key<L->r[j].key; --j)
L->r[j+1]=L->r[j];
L->r[j+1]=L->r[0];
}
}
/*折半插入排序*/
void BInsertSort(SqList *L)
{
int i,j;
int low,high,m;
for(i=2;i<=L->length;++i){
L->r[0]=L->r[i];
low=1;high=i-1;
while(low<=high){
m=(low+high)/2;
if (L->r[0].key<L->r[m].key)
high=m-1;
else low=m+1;
}
for(j=i-1;j>=high+1;--j)
L->r[j+1]=L->r[j];
L->r[high+1]=L->r[0];
}
}
/* 快速排序 */
int Partition(SqList *L,int low,int high)
{
int pivotkey;
L->r[0]=L->r[low];
pivotkey=L->r[low].key;
while(low<high){
while(low<high&&L->r[high].key>=pivotkey) --high;
L->r[low]=L->r[high];
while(low<high&&L->r[low].key<=pivotkey) ++low;
void BInsertSort(SqList *L)
{
int i,j;
int low,high,m;
for(i=2;i<=L->length;++i){
L->r[0]=L->r[i];
low=1;high=i-1;
while(low<=high){
m=(low+high)/2;
if (L->r[0].key<L->r[m].key)
high=m-1;
else low=m+1;
}
for(j=i-1;j>=high+1;--j)
L->r[j+1]=L->r[j];
L->r[high+1]=L->r[0];
}
}
/* 快速排序 */
int Partition(SqList *L,int low,int high)
{
int pivotkey;
L->r[0]=L->r[low];
pivotkey=L->r[low].key;
while(low<high){
while(low<high&&L->r[high].key>=pivotkey) --high;
L->r[low]=L->r[high];
while(low<high&&L->r[low].key<=pivotkey) ++low;
剩余5页未读,继续阅读
资源评论
- qq_378059822017-12-14一般般吧。
车朱靖
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功