在用于修订的旧试卷上出现了一个问题,询问了一种我无法找到任何地方名称的分类。希望有人在这里可以提供帮助吗?
湾生成一种算法,该算法将对数组进行排序以使其最大 物品在两端,最小的在中间。例如: [2,6,5,9,12]可能会变成[12,6,2,5,9]
答案 0 :(得分:2)
在序列中进行一次传递,以找到最大值,第二大值和最小值。交换最大到一端,第二大到另一端,最小到中间。 Voila:最大的物品在两端,最小的物品在中间。称之为“排序”是愚蠢的。
答案 1 :(得分:0)
我想重点是自己创造算法:
只是一个想法:
biggest = value of first element
smallest= value of first element
For all elements of the array do:
If value of current element > biggest
biggest = value of current element
Add biggest as last element of the array
If value of current element < smallest
smallest = value of current element
End of for loop
Move last element of the the array at first position
#now the biggest is the first element, the second bigger number is the last one
Put smallest at middle position of the array [idx max / 2 rounded up]
# now the smallest is in the middle
我希望它有所帮助。 托马斯