资源简介

六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。

资源截图

代码片段和文件信息

#include 
#include 
#include  
#define L 8 //排序元素个数 
#define FALSE 0 
#define TRUE 1 

typedef struct 

int key; 
char otherinfo; 
}RecType; 

typedef RecType Seqlist[L+1]; 
int num; //定义排序趟数的全局变量 
Seqlist R; 
//直接插入排序 
void Insertsort() 

int ijkm=0; 
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 
for(i=2;i<=L;i++) 

if(R[i].key
R[0]=R[i]; 
j=i-1; 
while(R[0].key
R[j+1]=R[j]; 
j--; 

R[j+1]=R[0]; 

m++; 
printf(“\t\t第%d趟排序结果为(按回车键继续):\n\t\t“m); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 

printf(“\n\t\t排序的最终结果是:\n\t\t“); 
for(i=1;i<=L;i++) 

printf(“%5d“R[i].key); 

printf(“\n“); 

//希尔排序 
void Shellsort() 

int ijgapxm=0k; 
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 
gap=L/2; 
while(gap>0) 

for(i=gap+1;i<=L;i++) 

j=i-gap; 
while(j>0) 

if(R[j].key>R[j+gap].key) 

x=R[j].key; 
R[j].key=R[j+gap].key; 
R[j+gap].key=x; 
j=j-gap; 

else 

j=0; 



gap=gap/2; 
m++; 
printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“m); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 

printf(“\n\t\t排序的最终结果是:\n\t\t“); 
for(i=1;i<=L;i++) 

printf(“%5d“R[i].key); 

printf(“\n“); 

//冒泡排序 
void Bubblesort() 

int ijk; 
int exchange; 
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 
for(i=1;i
exchange=FALSE; 
for(j=L;j>=i+1;j--) 

if(R[j].key
R[0].key=R[j].key; 
R[j].key=R[j-1].key; 
R[j-1].key=R[0].key; 
exchange=TRUE; 


if(exchange) 

printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“i); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 


printf(“\n\t\t排序的最终结果是:\n\t\t“); 
for(i=1;i<=L;i++) 

printf(“%5d“R[i].key); 

printf(“\n“); 


int Partition(int iint j) //i和j为形式参数,分别代表low和high 

RecType pirot=R[i]; 
while(i
while(i=pirot.key) 

j--; 

if(i
R[i++]=R[j]; 

while(i
i++; 

if(i
R[j--]=R[i]; 


R[i]=pirot; 
return i; 

//递归形式为快速排序 
void Quicksort(int lowint high) 

int pirotposk; 
if(low
pirotpos=Partition(lowhigh); 
num++; 
printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“num); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 
Quicksort(lowpirotpos-1); 
Quicksort(pirotpos+1high); 


//选择排序 
void Selectsort() 

int ijkh; 
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“); 
for(k=1;k<=L;k++) 

printf(“%5d“R[k].key); 

getchar(); 
printf(“\n“); 
for(i=1;i
h=i; 
for(j=i+1;j<=L;j++) 

if

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A.SH.       162  2015-12-27 14:14  排序算法代码实现及比较\~$2014321081073 梁燕 实验五.docx

     文件       7889  2016-01-05 10:10  排序算法代码实现及比较\代码\b\b.cpp

     文件       4224  2016-01-05 10:37  排序算法代码实现及比较\代码\b\b.dsp

     文件        527  2016-01-05 10:09  排序算法代码实现及比较\代码\b\b.dsw

     文件     412588  2017-12-04 21:20  排序算法代码实现及比较\代码\b\b.exe

     文件      33792  2016-01-05 10:37  排序算法代码实现及比较\代码\b\b.ncb

     文件      48640  2016-01-05 10:37  排序算法代码实现及比较\代码\b\b.opt

     文件        871  2016-01-05 10:10  排序算法代码实现及比较\代码\b\b.plg

     文件     204877  2016-01-05 10:10  排序算法代码实现及比较\代码\b\Debug\b.exe

     文件     213088  2016-01-05 10:10  排序算法代码实现及比较\代码\b\Debug\b.ilk

     文件      26506  2016-01-05 10:10  排序算法代码实现及比较\代码\b\Debug\b.obj

     文件     418816  2016-01-05 10:10  排序算法代码实现及比较\代码\b\Debug\b.pdb

     文件      33792  2016-01-05 10:16  排序算法代码实现及比较\代码\b\Debug\vc60.idb

     文件      45056  2016-01-05 10:10  排序算法代码实现及比较\代码\b\Debug\vc60.pdb

     文件     336896  2017-12-04 21:24  排序算法代码实现及比较\内部排序算法比较.doc

     目录          0  2017-12-04 21:21  排序算法代码实现及比较\代码\b\Debug

     目录          0  2017-12-04 21:21  排序算法代码实现及比较\代码\b

     目录          0  2017-12-04 21:21  排序算法代码实现及比较\代码

     目录          0  2017-12-04 21:24  排序算法代码实现及比较

----------- ---------  ---------- -----  ----

              1787724                    19


评论

共有 条评论