求数据结构(C语言)编程题答案,我能否撑过这学期就靠它了,请各位高手不啬赐教,重酬!

来源:百度知道 编辑:UC知道 时间:2024/05/23 18:40:10
题目如下:
利用随机函数产生两列(个数均为150的)随机整数,对这两列整数进行如下操作
(1)两列整数在顺序存储方式中,分别对其进行多种(至少3

种)排序(提示,可采用的方法有插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序,归并排序).并把排序后的结果自动保存在不同的文件

中.统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法.
(2)两列整数在链表存储方式中,

a)统计两链表中相同元素的个数;b)合并这两个链表为一个c)分别删除第一链表中能被5整除的结点和第二个链表中能被3整除的结点。
感谢jill0908的回答,可没有随机产生整数啊,不太符合问题哦。

#include <stdio.h>

/*交换两个数*/
void Swap(int &a, int &b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}
/*输出一行十个数字*/
void Write(int array[], int begin, int end)
{
for(int i = begin; i <= end; i ++)
// cout <<array[i] << " ";
printf("%d ",array[i]);
printf("\n");
// cout << endl;
}
/*插入排序*/
void InsertionSort(int array[], int begin, int end)
{
int i, j;
int tmp;
for(i = begin+1; i <= end; i ++) /*循环几次就输出几行*/
{
tmp = array[i];
for(j = i-1; j >= begin; j --)
{
if(tmp > array[j]) /*如果要从小到大排序,则改将'>'改为'<'*/
array[j + 1] = array[j];
else
break;
}
array[j+1] = tmp;
Write(array, begin, end); /*输出排序结果(一行)*/
}
}
/*选择排序*/
void SelectionSort(int array