让我们说'随机性'为了使数组完全排序,数组的数量等于需要执行的交换数。
我想编写一个程序,它将接收一个已排序的输入数组,并且输出将返回一个具有最大随机性的数组'。
请帮忙。
答案 0 :(得分:3)
取决于您如何定义" swap"。
例如,如果您的数组是[1,2,3,4,5]
并且交换必须在相邻数字之间,那么具有最大"随机性的数组"将是反向[5,4,3,2,1]
。但是,如果交换可以在任意两个数字之间,那么具有最大"随机性的数组"将是(array length)-1
交换排序的任何数组,例如[5,1,4,2,3]
答案 1 :(得分:0)
有许多可能的数组需要最大数量的交换才能排序。例如,取数字1到5。
2,3,4,5,1
5,4,3,2,1
两者都需要五次交换来生成排序数组,因为所有元素都不在位置。