线性表的排序

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:24:02
设计要求:使用线性表存储一组序列(至少含有20个元素),采用随机函数生成该线性表中的元素,编程实现:
(1)冒泡排序和两路合并排序算法;
(2)重复排序过程10000次,计算其平均执行时间,并分析两种排序算法。
回答满意就追加50分,各位高手,小弟在此先谢谢了!!
别拿人家的答案来糊弄我,草,2个题目也不一样啊!!!!

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))//从右扫描大于