例如,输入是
Array 1 = [2, 3, 4, 5]
Array 2 = [3, 2, 5, 4]
Run Code Online (Sandbox Code Playgroud)
需要的最小交换次数是2.
交换不需要与相邻的单元相交,任何两个元素都可以交换.
我在我正在开发的应用程序中遇到了以下问题:
我给了两个清单:
list1 = {Z,K,A,B,A,C}
list2 = {A,A,B,C,K,Z}
list2是保证是的排序版本list1.
我的目标是排序list1 仅通过交换单元内list1.因此,举例来说,我不能遍历list2,只是分配的每一个元素i中list1的每个元素j中list2.
使用list2作为一种资源,我需要排序list1的互换可能的绝对最低数量.
是否有专门用于此目的的一组算法?我没有听说过这样的事情.
我需要做这样的事情:假设我有一个数组:
[3, 4, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我需要交换 3 和 4,以及 1 和 2,所以我的数组看起来像[4, 3, 2, 1]. 现在,我可以只做sort(). 在这里我需要计算我需要多少次迭代,将初始数组更改为最终输出。例子:
// I can sort one pair per iteration
let array = [3, 4, 1, 2, 5]
let counter = 0;
//swap 3 and 4
counter++;
// swap 1 and 2
counter++;
// 5 goes to first place
counter++
// now counter = 3 <-- what I need
Run Code Online (Sandbox Code Playgroud)
编辑:这是我尝试过的。并不总是有效...它来自这个问题:Bubble sort algorithm JavaScript
let counter = 0;
let swapped;
do …Run Code Online (Sandbox Code Playgroud)