资源简介
各种排序算法的实现和性能比较C程序源代码,算法导论课程的实验,C语言实现的,
代码片段和文件信息
//file sort.c
#include “sort.h“
#include
#include
#include
#include
void merge(double array[] int p int q int r)
{
int n1 n2;
int ijk;
n1 = q - p + 1;
n2 = r - q;
for(i = 0 k = p; i < n1; i++ k++)
L[i] = array[k];
for(i = 0 k = q + 1; i < n2; i++ k++)
R[i] = array[k];
for(k = p i = 0 j = 0; i < n1 && j < n2; k++)
{
if(L[i] <= R[j])
{
array[k] = L[i];
i++;
}
else
{
array[k] = R[j];
j++;
}
}
if(i < n1)
{
for(j = i; j < n1; j++ k++)
array[k] = L[j];
}
if(j < n2)
{
for(i = j; i < n2; i++ k++)
array[k] = R[i];
}
}
void merge_sort(double array[] int p int r)
{
if(p < r)
{
int q = (p + r) / 2;
merge_sort(array p q);
merge_sort(array q + 1 r);
merge(array p q r);
}
}
double mergesort(double array[]int size)
{
clock_t startend;
start = clock();
merge_sort(array0size - 1);
end = clock();
return (double)(end - start) / CLOCKS_PER_SEC;
}
double insertsort(double array[]int n)
{
clock_t startend;
int ij;
double temp;
start = clock();
for(j=1;j {
temp = array[j];
i = j-1;
while ((i>=0) && (array[i]>temp))
{
array[i+1] = array[i];
i = i - 1;
}
array[i+1] = temp;
}
end = clock();
return (double)(end - start) / CLOCKS_PER_SEC;
}
double shellsort(double array[] int n)
{
clock_t startend;
int h i k;
double temp;
start = clock();
for (h=n/2; h>0; h=h/2)
{
for (i=h; i {
temp = *(array+i);
for (k=i-h; (k>=0 && temp<*(array+k)); k-=h)
{
*(array+k+h) = *(array+k);
}
*(array+k+h) = temp;
}
}
end = clock();
return (double)(end - start) / CLOCKS_PER_SEC;
}
void swap(double *a double *b)
{
double temp = *a;
*a = *b;
*b = temp;
}
int partition(double *array int low int high)
{
double temp = array[high];
int ij;
i = low - 1;
for(j = low;j {
if(array[j]<=temp)
{
i = i + 1;
swap(&array[i]&array[j]);
}
}
swap(&array[i+1]&array[high]);
return i + 1;
}
void quick_sort(double *array int low int high)
{
int q;
if(low {
q = partition(arraylowhigh);
quick_sort(arraylowq-1);
quick_sort(arrayq+1high);
}
}
double quicksort(double *array int size)
{
clock_t startend;
start = clock();
quick_sort(array 0 size-1);
end = clock();
return (double)(end - start) / CLOC
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4462 2008-10-30 00:41 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\HomeworkSort.dsp
文件 532 2008-10-17 19:44 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\HomeworkSort.dsw
文件 58368 2008-10-30 21:37 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\HomeworkSort.ncb
文件 54784 2008-10-30 21:37 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\HomeworkSort.opt
文件 781 2008-10-30 21:36 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\HomeworkSort.plg
文件 9613 2008-10-18 22:19 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\sort.c
文件 1828 2008-10-18 19:46 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\sort.h
文件 7592 2008-10-18 19:48 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\sortmain.c
文件 217162 2008-10-30 00:39 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\HomeworkSort.exe
文件 226792 2008-10-30 00:39 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\HomeworkSort.ilk
文件 517120 2008-10-30 00:34 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\HomeworkSort.pdb
文件 22307 2008-10-30 21:36 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\sort.obj
文件 20346 2008-10-30 21:36 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\sortmain.obj
文件 41984 2008-10-30 21:36 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\vc60.idb
文件 53248 2008-10-30 21:36 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug\vc60.pdb
目录 0 2009-04-03 18:52 各种排序算法的实现和性能比较C程序源代码\HomeworkSort\Debug
目录 0 2009-04-03 18:52 各种排序算法的实现和性能比较C程序源代码\HomeworkSort
目录 0 2009-04-03 18:52 各种排序算法的实现和性能比较C程序源代码
----------- --------- ---------- ----- ----
1236919 18
相关资源
- 用C语言实现卷积计算并绘制出卷积计
- vc 源码 md5字符串加密算法 绝对可以用
- C语言实现控制台扫雷小游戏
- 基于MFC的多媒体音频播放器
- c语言连接sql server
- Mfc获取本机IP地址
- source insight 配置文件超好
- c语言写的音乐程序源代码
- VC6.0_MFC_读写配置文件
- 数据结构 迷宫问题 C++ 栈方法
- libudt - UDT 传输库 linux c 接口封装
- mfc聊天程序,利用TCP/IP完成双向数据
- MFC中给对话框添加皮肤Skin_H
- C语言课程设计——宿舍管理系统
- 使用MFC进行GUI编程
- c语言控制pc扬声器代码
- huichang.cpp
- C语言编写的腐蚀膨胀开闭运算算法
- MFC多标签仿Chorme浏览器Demo
- 西工大C语言大作业模板
- 归并排序算法
- 黑白棋c语言代码
- C++程序设计教程 第二版 清晰版 带完
- VC++ DES 加密解密算法
- 运行c/c++程序时缺少mex.h
- PEMFC matlab 仿真
- MFC中将CScrollView视图显示在对话框中
- K-means聚类算法的C++实现
- 导线网间接平差
- vc2008工程转为vc6工具
评论
共有 条评论