这里使用哪种排序算法?

时间:2011-08-31 10:33:44

标签: algorithm math sorting

在编程活动中,他们问了这个问题。

问题: 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。

我无法追溯排序算法。 这里使用哪个算法?

2 个答案:

答案 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

更新:实际上它可能更简单:只需交换1K以及2Q3J等。只需七步:)

答案 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