使用就地合并进行合并排序

发布于 2024-09-15 21:14:17 字数 451 浏览 3 评论 0原文

A[]-> 1 3 5 7 2 4 6 8 //

lb=0,mid-1=3,mid+1=4,ub=7;

a=3,b=7,ab=7;

第一次迭代

a=3,b=6,ab=6;


第二次迭代

swap(A[ab],A[a]) // int t;我将用于临时存储

1 3 5 6 2 4 7 8

b=5,ab=5; 排序(A,磅,中1); // 使用冒泡排序


第三次迭代

swap(A[ab],A[a])

1 3 5 4 2 6 7 8

b=5,ab=4

sort(A,lb,mid-1) // 使用冒泡排序


Is这是使用就地合并进行合并排序的正确方法。这是我第一次尝试就地合并。如果这不是正确的方法,有人可以建议我。

A[] -> 1 3 5 7 2 4 6 8 //

lb=0,mid-1=3,mid+1=4,ub=7;

a=3,b=7,ab=7;

1st iteration

a=3,b=6,ab=6;


2nd iteration

swap(A[ab],A[a]) // int t; t i'll using for temporary storage

1 3 5 6 2 4 7 8

b=5,ab=5;
sort(A,lb,mid-1); // using bubble sort


3rd iteration

swap(A[ab],A[a])

1 3 5 4 2 6 7 8

b=5,ab=4

sort(A,lb,mid-1) // using bubble sort


Is this correct approach for Merge sort using inplace merging. This is my first attempt about inplace merging.If it is not correct approach someone can suggest me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

池木 2024-09-22 21:14:17

不确定你有合并排序算法。

在第一阶段使用合并排序,您需要将数组拆分为子数组。

A = [1, 3, 5, 7, 2, 4, 6, 8]

A1 = [1, 3, 5, 7], A2 = [2, 4, 6, 8]

A11 = [1,3], A12 = [5,7], A21 = [2,4], A22 = [6,8]
... // till you have an arrays looks like this:
A1 = [1], A2 = [3], A3 = [5], A4 = [7], A5 = [2], A6 = [4], A7 = [6], A8 = [8]

然后以相反的顺序合并,并仅比较两个数组中的第一个元素(将最低元素放入新数组中)。

[1,3], [5,7], [2,4], [6,8]
  [1,3,5,7],   [2,4,6,8]
     [1,2,3,4,5,6,7,8]

Not sure that you have Mergesort algorithm.

Using Mergesort at first phase you need to split you array into subarrays.

A = [1, 3, 5, 7, 2, 4, 6, 8]

A1 = [1, 3, 5, 7], A2 = [2, 4, 6, 8]

A11 = [1,3], A12 = [5,7], A21 = [2,4], A22 = [6,8]
... // till you have an arrays looks like this:
A1 = [1], A2 = [3], A3 = [5], A4 = [7], A5 = [2], A6 = [4], A7 = [6], A8 = [8]

Then you merging in reverse order, and compare only first elements in both arrays (put lowest element in new array).

[1,3], [5,7], [2,4], [6,8]
  [1,3,5,7],   [2,4,6,8]
     [1,2,3,4,5,6,7,8]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文