如何找到对具有重复元素的数组进行排序所需的最小交换数?

问题描述 投票:0回答:1

我遇到了一种算法,用于找出对没有重复元素的数组进行排序的最小交换量。当数组中有重复的元素时,情况变得很有趣。让我们假设该数组可以包含-2 ^ 31-(2 ^ 31)-1的整数元素。同样,数组可以包含重复的元素。找出最小交换次数的最佳方法是什么?

注意:我实际上并不是在试图对数组进行排序,而是要找出使它按升序排列的最小交换量。

arrays algorithm sorting
1个回答
0
投票

最小交换次数将取决于您选择的排序算法。如果您想使用一种算法,使交换次数最少,则可以使用selection sort进行选择排序,如果您有n个元素,即使在最坏的情况下也只有n交换。

选择排序的方法是从未排序的数组中反复“选择”下一个最小的元素并将其移到最前面。

© www.soinside.com 2019 - 2024. All rights reserved.