- 2
- 0
- 约1.06万字
- 约 21页
- 2022-04-03 发布于上海
- 举报
内部排序算法比较
问题描述
在课本中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶数或大概执行时间。试通过随机数 据比较各算法的关键字比较次数和关键字移动次数,以取得 直观感受。
需求分析
对以下 5 种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序。
待排序表的表长不小于 100;其中的数据要用伪随机数函数产生;至少要用 5 组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数( 其中关键字交换计为 3 次移动)。
最后要对结果做出简单分析,包括对各组数据得 出结果波动大小的解释。
测试数据
由随机数产生函数生成。
实现关键
主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数 据的典型性;如正序、逆序和不同程度的乱序。
程序的运行图如下
程序设计如下:
Sort.h:
#ifndef sort_h #define sort_h
#include stdio.h #includeiostream #include assert.h #includecstdlib #includeiomanip
using namespace std;
template class T class SeqList
{
public:
SeqList (const int size = 100);
~SeqList();
SeqList operator = (SeqList ); void Bubble();//冒泡排序
void InsertSort();//插入排序
void SelectSort();//选择排序 void QuickSort();//快速排序 void Shell();//希尔排序
void HalfInsertSort();//折半插入排序
void MergeSort();//归并排序的非递归算法 void HeapSort();//堆排序
void BidirInsert();//二路插入排序 void Del();//删除线型表里的元素 int Length() const;//线形表长度
int Find( const T x ) const;//查找值为x的位置int Insert ( T x, int i );//将x插入位置i
bool IsEmpty()const;//判空 bool IsFull() const;//判满
T Get( int i );//查找i位置的元素 void Print();//打印
T *data;//线型表的表头指针 private:
int maxsize;//线型表的最大容纳元素个数int last;//线型表表尾指针
};
template class T
SeqList T::SeqList(const int size)
{
assert (size = 0);//Tests a string to see if it is NULL, empty, or longer than 0 characters
if (size 0)
{
maxsize = size; last = 0;
data = new T[maxsize]; if(data == NULL)
cout内存申请错误!endl;
}
};
template class T SeqList T::~SeqList()
{
delete[] data;
}
template class T
SeqList T SeqList T::operator = (SeqListT s)
{
if (s.last 0)
{
delete[] data; maxsize = s.maxsize; last = s.last;
data = new T[maxsize]; for(int i=1;i=last;i++)
{
data[i] = s.data[i];
}
}
return *this;
}
template class T
void SeqList T::Bubble()
t(temp,0);
t(temp,0);
for(int i=0;iLength()+1;i++)
{
temp = Get(i); t(temp,i+1);
}
*/
int x = 0; int y = 0;
{
int a=1; int i=0;
// int temp; int x=0;
int y=0;
while(a)
{
a = 0;
for(i=1;ilast;i++)
{
if(data[i]data[i+1])
{
data[0]=data[i]; data[i]=dat
您可能关注的文档
- 六年级下册英语期末复习卷 人教(精通).docx
- 六年级下册英语期末试卷(含答案) 人教(精通).docx
- 六年级下册英语期末综合测试卷 (含听力材料)(广东版)开心英语.docx
- 六年级下册英语期末总复习分类 人教(PEP)(含答案).docx
- 六年级下册英语期中测试卷 科普版(三起)(含答案).docx
- 六年级下册英语期中测试卷 人教(精通)(含答案).docx
- 六年级下册英语期中测试卷 -外研社(三起).docx
- 六年级下册英语期中测试卷(1) 外研社(三起).docx
- 六年级下册英语期中测试卷(含答案)(广东版)开心英语.docx
- 六年级下册英语期中测试卷B 外研社一起(含答案).docx
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)