private void sort(int[] list)
10余年的內(nèi)黃網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整內(nèi)黃建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)建站從事“內(nèi)黃網(wǎng)站設計”,“內(nèi)黃網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
{
int[] sortlist=new int[21];
for(int i=1;i=20;i++)
sortlist[i]=-1;
for(int i=0;ilist.Length;i++)
{
sortlist[list[i]]=list[i];
}
for(int i=0;isortlist.Length;i++)
{
if(sortlist[i]!=-1)
{
輸出sortlist[i];
}
}
因為已知最大值,所以遍歷算法計算次數(shù)為常數(shù),所以算法復雜度為1
二叉樹
1
2??? 3
4 ?5 6 ?7
這個二叉樹的深度是3,樹的深度是最大結點所在的層,這里是3.
應該計算所有結點層數(shù),選擇最大的那個。
根據(jù)上面的二叉樹代碼,遞歸過程是:
f(1)=f(2)+1 f(3) +1 ? f(2) + 1 : f(3) +1
f(2) 跟f(3)計算類似上面,要計算左右結點,然后取大者
所以計算順序是f(4.left) = 0, f(4.right) = 0
f(4) = f(4.right) + 1 = 1
然后計算f(5.left) = 0,f(5.right) = 0
f(5) = f(5.right) + 1 =1
f(2) = f(5) + 1 =2
f(1.left) 計算完畢,計算f(1.right) f(3) 跟計算f(2)的過程一樣。
得到f(3) = f(7) +1 = 2
f(1) = f(3) + 1 =3
if(depleftdepright){
return?depleft+1;
}else{
return?depright+1;
}
只有l(wèi)eft大于right的時候采取left +1,相等是取right
其實有兩種方式:
第一種就是遞歸 就像現(xiàn)在比較老的樹形菜單。這種方式應該string類型應該是存不了的。就是自定義一個類型A 里面有一個成員變量 listA。 這種結構就是list里面嵌套list,你有多少級就有多少層。
第二種其實要做處理,就是把原數(shù)據(jù)按一定規(guī)則排序放到一個list里面,這里面不會再嵌套list。list排完序就如你的效果圖一樣。第一個 一級節(jié)點 》》其子節(jié)點;然后第二個一級節(jié)點》》其子節(jié)點,etc。 但是這種結構要有存的時候要循環(huán)一遍排成上述的順序,取的時候還需要判斷哪個是下一個不同級節(jié)點的開始。
js前臺展示比較簡單,根據(jù)父id直接添加就行了,原數(shù)據(jù)什么都不用做。但是java里這種方式不行。