在编程活动中,他们问了这个问题。
问题: 1 2 3 4 5 6 7 8 9 10 J Q K。
写入和算法以相反的顺序对卡进行排序分为7个步骤。
K Q J 10 9 8 7 6 5 4 3 2 1。
我无法追溯排序算法。 这里使用哪个算法?
答案 0 :(得分:5)
我认为它类似quicksort,但有块动作:
1 2 3 4 5 6 7 8 9 10 J Q K
8 9 10 J Q K 7 1 2 3 4 5 6
J Q K 8 9 10 7 1 2 3 4 5 6
J Q K 8 9 10 7 4 5 6 1 2 3
K Q J 8 9 10 7 4 5 6 1 2 3
K Q J 10 9 8 7 4 5 6 1 2 3
K Q J 10 9 8 7 6 5 4 1 2 3
K Q J 10 9 8 7 6 5 4 3 2 1
更新:实际上它可能更简单:只需交换1
和K
以及2
和Q
,3
和J
等。只需七步:)
答案 1 :(得分:0)
如果某个步骤是交换,那么Selection sort将按6个步骤对该列表进行排序。
K Q J 10 9 8 7 6 5 4 3 2 1
1 Q J 10 9 8 7 6 5 4 3 2 K
1 2 J 10 9 8 7 6 5 4 3 Q K
1 2 3 10 9 8 7 6 5 4 J Q K
1 2 3 4 9 8 7 6 5 10 J Q K
1 2 3 4 5 8 7 6 9 10 J Q K
1 2 3 4 5 6 7 8 9 10 J Q K