Algs4 1 4 20雙調查找

2022-08-09 13:57:17 字數 496 閱讀 6559

1.4.20雙調查找。如果乙個陣列中的所有元素是先遞增後遞減的,則稱這個陣列為雙調的。編寫乙個程式,給定乙個含有n個不同int值的雙調陣列,判斷它是否含有給定的整數。程式在最壞情況下所需的比較次數為~3lgn。

答:第一步找出陣列中的最大值索引,然後將陣列從最大值索引位置一分為二,將陣列分為單調遞增和單調遞減的兩個陣列,再在這兩個陣列中使用二分查詢。

public class e1d4d20

private static int maxindex(int a)

return lo;

}private static int rankup(int a,int lo,int hi,int key)

return -1;

}private static int rankdown(int a,int lo,int hi,int key)

return -1;

}public static void main(string args)

}

luoguP4142 洞穴遇險

戳我 這種用來拼接的奇形怪狀的東西,要不就是輪廓線 dp 要不就是網路流。為了表示奇數點 即 x y 2 1 的危險值,把該點拆為兩個點,連一條邊長為該點危險值相反數的邊 兩點分別稱為起點和終點 鑑於一根柱子跨越 3 個格仔,其中一點為奇數點,另外兩個點都是偶數點,不能區分。於是也要把偶數點分為兩類...

Algs4 1 5 17隨機連線

1.5.17隨機連線。設計uf的乙個用例 erdosrenyi,從命令列接受乙個整數n,在0到n 1之間產生隨機整數對,呼叫connected 判斷它們是否相連,如果不是則呼叫union 方法 和我們的開發用例一樣 不斷迴圈直到所有觸點均相互連通並列印出生成的連線總數。將你的程式打包成乙個接受引數n...

Algs4 1 3 31隨機連線

1.3.31隨機連線。編寫一段程式,從命令列接受乙個整數n和double值p 0到1之間 作為引數,在乙個圓上畫出大小為0.05且間距相等的n個點,然後將每對點按照概率p用灰線連線。public class test for int i 0 i points.length i for int j 0...