数据结构_互联网_IT计算机_专业资料.doc
文本预览下载声明
实验报告
130405324
实验室号: 信息220 实验组号: 24
实验时间: 2015.6.12 批阅时间:
指导教师: 王宏生 成 绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级: 计算机1303班 学号: 130405324 姓名: 宁相如
实验名称:排序
1.实验目的
(1)
(2)
(1)
(2)实现希尔排序算法。
(3)
(4)
(5)
(1) /*参加排序元素的最大个数*/
typedef struct list{
int key;
}RedType;
typedef struct{
RedType r[MAXSIZE+1];
int length; /*参加排序元素的实际个数*/
}SqList;
(2))130405324 姓名: 宁相如
实验程序:
#include iostream.h
#include stdio.h
class SortTable
{
private:
int *sort; //待排序表
int length; //待排序元素个数
public:
SortTable(int l);
~SortTable(){delete []sort;};
void createST(); //建立待排序表
void stOut(); //快速排序算法输出排序后的表
void insertsort(); //直接插入排序
void selesort(); //简单选择排序
void bublesort(); //冒泡排序
int partition(int *low,int *high); //一趟快速排序,返回i,产生了两个独立的待排子序列,供函数quicksort调用
void quicksort(int start,int end); //快速排序
};
SortTable::SortTable(int l)
{
int i;
length=l;
sort=new int[length];
for (i=0;ilength;i++) //待排序表清0
sort[i]=0;
}
void SortTable::createST()
{
int j,k=0;
cout请输入待排序元素(整数),用空格分开:endl;
while(klength) //输入待排序元素值
{
cinj;
sort[k]=j;
k++;
}
}
void SortTable::stOut()
{
int i;
cout快速排序算法是:endl;
for(i=0;ilength;i++)
coutsort[i] ;
coutendl;
}
void SortTable::insertsort()
{
int i,j,k;
for(i=1;ilength;i++)
{
k=sort[i];
j=i-1;
while(ksort[j])
{
sort[j+1]=sort[j];
j--;
}
sort[j+1]=k;
}
cout直接插入排序算法结果是:endl;
for(i=0;ilength;i++)
coutsort[i] ;
coutendl;
}
void SortTable::selesort()
{
int i,j,k;
int temp;
for(i=0;ilength;i++)
{
k=i;
for(j=i+1;jlength;j++)
if(sort[j]sort[k])
k=j;
if(k!=i)
{
temp=sort[i];
sort[i]=sort[k];
sort[k]=temp;
}
}
cout简单选择排序算法结果是:endl;
for(i=0;ilength;i++)
coutsort[i] ;
coutendl;
}
void SortTable::bublesort()
{
int i,j;
int temp;
for(i=0;ilength-1;i++)
for(j=length-2;j=i;j--)
if(sort[j+1]sort[j])
{
temp=s
显示全部