课题是 在线性表上排序 用C或C++

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:40:28
程序设计要求:1使用线性表存储一组序列(至少含有20个元素),采用随机函数生成该线性表中的元素序列
2在此基础上实现简单选择顺序和快速排序算法
3重复排序过程10000次,计算其平均时间,并分析两种排序算法得到的结果
请各位大虾帮帮小妹的忙 不胜感激。。。。
主要想用V++6.0做 还有高手大虾帮帮忙忙啊 真的非常非常的感激......

1. 随机生成元素用rand()函数

2. 选择排序:
void SelectSort(int* pData,int Count)
{
int iTemp;
int iPos;
for(int i=0;i<Count-1;i++)
{
iTemp = pData[i];
iPos = i;
for(int j=i+1;j<Count;j++)
{
if(pData[j]<iTemp)
{
iTemp = pData[j];
iPos = j;
}
}
pData[iPos] = pData[i];
pData[i] = iTemp;
}
}

//解释:pData是你获得的线性表;Count是线性表长度,即元素个数

快速排序:
void run(int* pData,int left,int right)
{
int i,j;
int middle,iTemp;
i = left;
j = right;
middle = pData[(left+right)/2]; //求中间值
do{
while((pData[i]<middle) && (i<right))//从左扫描大于中值的数
i++;
while((pData[j]>middle) && (j>left))//从右扫描大于