java多线程归并排序_并行计算实验-串、并行排序算法

并行实验报告一、项目背景项目要求实现快速排序、枚举排序、归并排序三种排序方法的串行和并行算法,并且进行性能比较和优化分析。其中数据集`random.txt`,当中包含30000个乱序数据,数据的范围是[-50000,50000],数据间以空格“ ”分隔。具体要求:1. 用Java多线程或者C#多线程模拟并行处理(推荐用Java)。2. 说明程序执行方式,记录在ReadMe.txt中。3. 读取乱序...
摘要由CSDN通过智能技术生成

并行实验报告

一、项目背景

项目要求实现快速排序、枚举排序、归并排序三种排序方法的串行和并行算法,并且进行性能比较和优化分析。其中数据集`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, end)

end if

end function

```

````java

function partition(L, start, end):

pivot = start

i = start;

for j = start to end -1:

if L[j] < pivot:

swap(A[i], A[j])

end if

i = i + 1

end for

swap(A[i], A[end])

return i

end function

````

2.2 串行枚举排序

````java

function RankSort(L, start, end):

for i = start to end:

count = 1

for j= start to end:

if L[i] > L[j] || (L[i] == L[j] && i > j):

x = x + 1;

end if

end for

R[i] = L[i]

end for

end function

````

2.3 串行归并排序

```java

function MergeSort(L, start, end):

if start <

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值