導航:首頁 > 編程語言 > java遞歸查詢許可權

java遞歸查詢許可權

發布時間:2025-06-12 20:46:32

java二分法查找的遞歸演算法怎麼實現

什麼是二分查找?

二分查找也稱折半查找(Binary Search),它是一種效率較高的查找方法。但是,折半查找要求線性表必須採用順序存儲結構,而且表中元素按關鍵字有序排列。

二分查找優缺點

優點是比較次數少,查找速度快,平均性能好;

其缺點是要求待查表為有序表,且插入刪除困難。

因此,折半查找方法適用於不經常變動而查找頻繁的有序列表。
使用條件:查找序列是順序結構,有序。


過程

首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查找關鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查找關鍵字,則進一步查找前一子表,否則進一步查找後一子表。重復以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時查找不成功。

利用循環的方式實現二分法查找

public class BinarySearch {
public static void main(String[] args) {
// 生成一個隨機數組 int[] array = suiji();
// 對隨機數組排序 Arrays.sort(array);
System.out.println("產生的隨機數組為: " + Arrays.toString(array));

System.out.println("要進行查找的值: ");
Scanner input = new Scanner(System.in);
// 進行查找的目標值 int aim = input.nextInt();

// 使用二分法查找 int index = binarySearch(array, aim);
System.out.println("查找的值的索引位置: " + index);

}

/** * 生成一個隨機數組 *
* @return 返回值,返回一個隨機數組 */
private static int[] suiji() {
// random.nextInt(n)+m 返回m到m+n-1之間的隨機數 int n = new Random().nextInt(6) + 5;
int[] array = new int[n];
// 循環遍歷為數組賦值 for (int i = 0; i < array.length; i++) {
array[i] = new Random().nextInt(100);
}
return array;
}

/** * 二分法查找 ---循環的方式實現 *
* @param array 要查找的數組 * @param aim 要查找的值 * @return 返回值,成功返回索引,失敗返回-1 */
private static int binarySearch(int[] array, int aim) {
// 數組最小索引值 int left = 0;
// 數組最大索引值 int right = array.length - 1;
int mid;
while (left <= right) {
mid = (left + right) / 2;
// 若查找數值比中間值小,則以整個查找范圍的前半部分作為新的查找范圍 if (aim < array[mid]) {
right = mid - 1;
// 若查找數值比中間值大,則以整個查找范圍的後半部分作為新的查找范圍 } else if (aim > array[mid]) {
left = mid + 1;
// 若查找數據與中間元素值正好相等,則放回中間元素值的索引 } else {
return mid;
}
}
return -1;
}}
運行結果演示:

總結:

遞歸相較於循環,代碼比較簡潔,但是時間和空間消耗比較大,效率低。在實際的學習與工作中,根據情況選擇使用。通常我們如果使用循環實現代碼只要不是太繁瑣都選擇循環的方式實現~

⑵ java 根據文件獲取文件名及路徑的方法

在Java中,通過遍歷文件查找指定文件,可以使用遞歸方法。這里提供一個示例,展示如何獲取文件名及路徑。

首先定義一個類Test1,其中包含一個靜態的HashMap用於存儲文件名和路徑。在Test1類中,定義一個遞歸方法find,接受文件路徑作為參數。在find方法中,創建一個File對象,載入指定路徑下的文件列表。

遍歷文件列表,檢查每個文件是否為文件夾。如果是文件夾,則繼續向下查找文件;如果是文件,則記錄文件路徑和文件名,並將它們存儲在HashMap中。

在main方法中,指定需要遍歷的路徑,調用find方法查找文件,並輸出指定文件的路徑。

例如,假設要查找位於"D:\kpi\"路徑下的名為"kpi.9"的文件。在main方法中,調用find方法,傳入路徑"D:\kpi\"。然後使用filelist.get("kpi.9")獲取文件路徑,輸出結果為"d:\kpi\kpi.9"。

這種方法適用於文件路徑較長的情況,通過遞歸方式可以逐級查找,直到找到目標文件。這種方法可以靈活地應用於不同的文件查找場景,只需調整find方法中的條件判斷即可。

需要注意的是,在實際應用中,可能會遇到文件許可權問題。因此,在遍歷文件時,需要確保具有相應的讀取許可權。同時,建議對文件名和路徑進行適當的處理,如轉換為小寫,以避免大小寫不匹配的問題。

此外,還可以根據需要擴展此示例,例如添加異常處理代碼,以應對可能出現的I/O異常。通過這種方式,可以確保程序在遇到問題時能夠優雅地處理錯誤,提高程序的健壯性。

總之,通過遞歸方法遍歷文件查找指定文件是一種實用的技術,可以在Java項目中靈活運用。

⑶ 用java遞歸方法實現

pubilc long fun(long k){
if(k<=0) return 1;//魯捧性復
return k*fun(k-1);
}
解釋下,這是階乘函制數,其結果超乎你想的大。
因此使用long。
其二,考慮魯捧性,盡量考慮所有的輸入情況。
其三,去掉沒必要的條件,進行優化,代碼簡潔。

閱讀全文

與java遞歸查詢許可權相關的資料

熱點內容
可視化編程exe用什麼軟體 瀏覽:641
性感手游app哪個比較好 瀏覽:54
壓縮文件前面有個s的符號 瀏覽:487
pe引導文件添加失敗 瀏覽:32
qq附近人顯示的時間 瀏覽:133
jst怎麼查找型號資料 瀏覽:614
win10如何拷貝ftp文件夾 瀏覽:128
蘋果台式運用程序文件在哪裡 瀏覽:24
oracle資料庫擴容實施方案 瀏覽:151
液晶電視機換主板後如何編程 瀏覽:492
dotx文件沒有內容 瀏覽:825
片段xls文件格式無效 瀏覽:100
壓縮文件顯示路徑太長什麼意思 瀏覽:781
asp網站怎麼打開 瀏覽:488
旅遊新網站怎麼使用 瀏覽:78
蘋果6從背面怎麼看出來多大內存 瀏覽:533
qq飛車帝王雷諾數據 瀏覽:883
蜂窩網路關閉後自動開啟 瀏覽:3
js實現微信表情 瀏覽:939
復制到u盤提示文件過大 瀏覽:215

友情鏈接