Algorithm 处于奇数/偶数位置的个人轮流重新安排自己,需要多少步骤才能保证正确的顺序? 问题
考虑一组随机排列的人,他们面对同一个方向并排站着。 人们要根据年龄重新排列自己,最小的在左边,最大的在右边 将通过交替执行以下两个步骤来重新安排人员顺序:Algorithm 处于奇数/偶数位置的个人轮流重新安排自己,需要多少步骤才能保证正确的顺序? 问题,algorithm,sorting,Algorithm,Sorting,考虑一组随机排列的人,他们面对同一个方向并排站着。 人们要根据年龄重新排列自己,最小的在左边,最大的在右边 将通过交替执行以下两个步骤来重新安排人员顺序: 如果右边的人更年轻,则处于偶数位置的每个人都会与右边的人交换位置 单数位置的每个人都会和右边的人交换位置,如果那个人更年轻的话 该算法将在x步数后自动停止,具体取决于排队人数(n)。每种可能的情况下,需要多少个单独的步骤来保证n个人被分类 我的过程 对于n>2的每个重新排序过程,所需的步骤数为n。与n@juvian重新排序如果有4个人,
- 如果右边的人更年轻,则处于偶数位置的每个人都会与右边的人交换位置
- 单数位置的每个人都会和右边的人交换位置,如果那个人更年轻的话
我的过程
对于n>2的每个重新排序过程,所需的步骤数为n。与n@juvian重新排序如果有4个人,只需3个步骤就可以将最年轻的人放在正确的位置。如果这里没有答案,你可以尝试在计算机科学中提问
Example, n = 2
Pos 0 1
Ages #0 2 1
Ages #1 1 2 Steps required = 1
Example, n = 4
Pos 0 1 2 3
Ages #0 4 3 2 1
Ages #1 3 4 1 2
Ages #2 3 1 4 2
Ages #3 1 3 2 4
Ages #4 1 2 3 4 Steps required = 4