并行实验报告
一、项目背景
项目要求实现快速排序、枚举排序、归并排序三种排序方法的串行和并行算法,并且进行性能比较和优化分析。其中数据集`random.txt`,当中包含30000个乱序数据,数据的范围是[-50000,50000],数据间以空格“ ”分隔。
具体要求:
1. 用Java多线程或者C#多线程模拟并行处理(推荐用Java)。
2. 说明程序执行方式,记录在ReadMe.txt中。
3. 读取乱序数据文件`random.txt`,排序完成后输出排序文件`order\*.txt`。(需提交六份order\*.txt,命名为order1.txt,order2.txt…以此类推)
4. 比较各种算法的运行时间,请将运行时间记录在2*3的表格中。行分别表示串行、并行,列分别表示快速排序、枚举排序、归并排序。
5. 撰写实验报告,包括并行算法的伪代码、运行时间、技术要点(如性能优化方法)等,结合各自的实验设备(如多核处理器)上的实验结果进行优化,并在实验报告中针对实验结果进行分析(考虑到并行算法多线程在单核处理器中的并行开销,有可能性能会比串行算法下降)。
6. 独立完成实验,杜绝抄袭。
二、算法伪代码
2.1 串行快速排序
```java
function quicksort(L, start, end):
if start < end :
p = partition(L, start, end)
quicksort(L, start, p-1)
quicksort(L, p+1,