申論 3二元搜尋法(binary search)使用divide-and-conquer(分而治之)演算法技巧,對一個已排序的(sorted)且長度為n 的陣列A[0:n1],以二元化方式進行資料值x 的搜尋,其最差時間複雜度(worst case timecomplexity)可降到(log n)。㈠請使用C++或Python 語言,修改此二元搜尋法,使其能對未排序的(unsorted)且長度為n 的陣列A[0:n1],進行三元化搜尋,即以divide-and-conquer 技巧將此陣列切成三個子陣列,並在可能包含資料值x 的子陣列繼續進行divide-and-conquer 技巧的搜尋,如果找到則回傳1,如果找不到則回傳0。(17 分)(注意:請寫一個searching 類別,內含一個search 功能)㈡請分析修改後的三元化搜尋法其最差時間複雜度(worst case time complexity)以order 的方式表示。(8 分)(注意:不可將此陣列數值進行排序,請加註解說明程式碼作法。)