josephu問題為:設編號為1
,2,...n的n個人圍坐一圈,約定編號為k(1
<=k<=n)的人從1開始報數,數到m的那個人出列,它的下一位又從1開始報數,數到m的那個人又出列,依次類推,直到所有人出列為止,由此產生乙個出隊編號的序列。
1.約瑟夫問題--建立環形鍊錶的思路
a.先建立第乙個結點,讓first指向該節點,並形成環形
b.後面當每建立乙個新的節點,就把該節點,加入到已有的環形鍊錶中即可
2.遍歷環形鍊錶
a.先讓乙個輔助指標(變數)curboy,指向first節點
b.然後通過乙個while迴圈遍歷該環形鍊錶即可curboy.next==first結束
**實現:
約瑟夫問題--小孩出圈的思路分析圖
根據使用者的輸入,生成乙個小孩出圈的順序n=5
,即有5個人k=1
,從第乙個人開始報數m=2
,數2下
1.需求建立乙個輔助指標(變數)helper,事先應該
指向環形鍊錶的最後這個節點。
補充:小孩報數前,先讓first和helper移動k-
1次2.當小孩報數時,讓first和helper指標同時的移動m-
1次3.這時就可以將first指向的小孩節點出圈
first=first.next
helper.next=first
原來first指向的節點就沒有任何引用,就會被**
出圈的順序2-
>4-
>1-
>5-
>
3
**的實現整個約瑟夫問題**實現 演算法與資料結構學習 04 記憶體
記憶體中存在三種資料 全域性中的資料 堆中的資料 臨時堆疊中的數 據1.全域性資料 static int value 100 void process value和number的資料其實都屬於全域性資料,這裡的變數是不隨著函式的呼叫發生變化的。2.堆中的資料 void process 分配的資料就是...
資料結構04
複習 1 什麼是資料結構 是專門研究資料關係和操作的學科,而非是計算方法。資料結構 演算法 程式 2 邏輯結構和物理結構 邏輯結構 集合 除了同屬於乙個集合,資料之間沒有任何關係。表 資料之間存在一對一關係。樹 資料之間存在一對多關係。圖 資料之間存在多對多關係。物理結構 順序結構 資料存在在連續的...
python 資料結構與演算法 day04 希爾排序
思路 希爾排序其實就是插入排序的一種,把原有序列分為gap個子序列,每乙個子串行都執行插入排序的操作 是在原有序列上進行 然後把gap變小,就有會生成gap個子序列,對每乙個新的子串行繼續執行插入排序操作,gap 1時 其實就是對原有長度序列執行的插入排序 def shell sort l 希爾排序...