扑克牌A-K,按一定排序后,先把上面一张的置于桌面,然后翻开一张牌。循环到最后一张牌,这时桌面牌是按顺序排列的。
直接上Java实现算法
/**
* 纸牌算法
*/
private static void CardAlgorithm(){
int cardnum = 12;
List<Integer> cardList = new ArrayList<Integer>();
while(cardnum > 0){
//对于前两张纸牌可以顺序存放
if(cardList.size() <= 1){
cardList.add(0, cardnum);
}else{
//算法核心:每在最上面放一张纸牌,则要将最下面的拿出来放到最上面纸牌的下面
cardList.add(0, cardnum);
int temp = cardList.get(cardList.size()-1);
cardList.remove(cardList.size()-1);
cardList.add(1, temp);
}
cardnum --;
}
for(Integer c : cardList){
System.out.print(c+"\t");
}
}