• 大小: 201KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: C/C++
  • 标签: 排序算法  C  程序  

资源简介

各种排序算法的实现和性能比较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


评论

共有 条评论