这种名字有吗?

时间:2013-09-29 12:33:50

标签: algorithm sorting

我必须找到神秘算法的功能。现在我知道这是一种,但我找不到它的正式名称。

这是它的Java代码:

for (int i = 0 ; i < myListSize; i++) {
    min = Collections.min(myList.subList(i, myListSize));
    minIndex = myList.indexOf(min);
    Collections.reverse(myList.subList(minIndex, myListSize));
    Collections.reverse(myList.subList(i, myListSize));
}

拿这个数组:

   [G,E,D,A,F,C,H,I,B]

它1)搜索最小值。元素,2)从那里颠倒子阵列,3)再次颠倒整个事物:

1) [G,E,D,[A,F,C,H,I,B]]
2) [G,E,D,[B,I,H,C,F,A]]
3) [[A,F,C,H,I,B],D,E,G]

现在分钟。元素在左边。重复数组的其余部分:

1) [A] [F,C,H,I,[B,D,E,G]]
2) [A] [F,C,H,I,[G,E,D,B]]
3) [A] [[B,D,E,G],I,H,C,F]

1) [A,B] [D,E,G,I,H,[C,F]]
2) ...

和瞧!排序。你有名字吗?

1 个答案:

答案 0 :(得分:8)

它被称为Pancake sorting

Pancake sorting, Image from wikipedia

以下是关于它的代码高尔夫拼图:Flipping pancakes