面試訓練烙餅排序實現

2021-06-09 12:21:03 字數 843 閱讀 7531

程式設計之美的演算法思想很好,可是有些地方很難一下子看明白,對於我這種急性子的人,很難一下搞懂。

通俗的將這道題的思路是這樣子的

加入烙餅序列 為 1 7 3 5 6 2 4

我們認為 4 為餅子的頂端,由於只能把下面的多塊餅移到上面,然後再反轉移到響應的位置。

實際上 就是從 底層開始 我們找未放在原位的餅子 ,現在在的位置,將其移到上面,然後在移到響應的位置。

簡單地說 就是把大的放到底下,小的放到上面。

這樣就容易。

直接code

#include "iostream"

#include "vector"

#include "deque"

using namespace std;

void reverse(vector&cookie,deque&tempstore,int pos)

int k=tempstore.size();

for(i=0;ilaobin;

dequetempstore;

for(i=0;imax)

}/*大的不在該在的位置*/

if(pos!=i)

}for(vector::iterator iter=laobin.begin();iter!=laobin.end();iter++)

cout<

的queue stack deque map multimap set multiset 使用的不是很好。

耽誤了時間。

經典演算法 烙餅排序

給乙個為排序的陣列,你只能再改對該陣列做如下操作 flip arr,i 將陣列arr 0.i 進行逆置。如何對該陣列進行排序?這個問題在程式設計之美一書也有提及 星期五的晚上,一幫同事在希格瑪大廈附近的 硬碟酒吧 多喝了幾杯。程式設計師多喝了幾杯之後談什麼呢?自然是演算法問題。有個同事說 我以前在餐...

面試訓練O n 時間的排序

題目 某公司有幾萬名員工,請完成乙個時間複雜度為o n 的演算法對該公司員工的年齡作排序,可使用o 1 的輔助空間。思路 歸併,快排,插入,等排序最快為o nlgn 的時間複雜度 要達到o n 的時間複雜度 只有計數排序,桶排序,基數排序法才能達到 考慮到公司員工入職和離職的年齡範圍是固定的都是介於...

關於烙餅排序問題的演算法與Java實現

最近在看 程式設計之美 這本書,書裡有乙個烙餅排序問題。星期五的晚上,一幫同事在希格瑪大廈附近的 硬碟酒吧 多喝了幾杯。程式設計師多喝了幾杯之後談什麼呢?自然是演算法問題。有個同事說 我以前在餐館打工,顧客經常點非常多的烙餅。店裡的餅大小不一,我習慣在到達顧客飯桌前,把一摞餅按照大小次序擺好 小的在...