當前位置:科普知識站>IT科技>

java|algorithm

IT科技 閱讀(1.07W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java algorithm是什麼,讓我們一起了解一下?

algorithm是在數學(算學)和電腦科學之中,為任何良定義的具體計算步驟的一個序列,常用於計算、資料處理和自動推理,演算法的核心是建立問題抽象的模型和明確求解目標。

衡量演算法是否高效主要從哪幾個方面來分析?

1、簡單性和清晰度

一般我們都希望演算法越簡單越清晰就越好,但是要保證效率為前提。可是,往往我們在複雜的專案開發中所遇見的問題比較複雜,對時間和空間效率的要求也較高,因此,演算法一般都會比較複雜。

2、空間效率:這裡的空間效率並不是指演算法程式碼佔用的記憶體指令空間,而是指程式碼中的資料分配(變數與變數所引用值的分配)以及方法呼叫所使用的記憶體(呼叫棧的空間分配)。

比如,我們常用的遞迴,雖然會使程式碼清晰簡單,但是記憶體的使用也會大大提高。理想的程式所使用的記憶體應該和資料及方法呼叫所佔用記憶體相等。但事實總是會有些額外的開銷,因此,空間效率也是我們衡量演算法的方面之一。

java algorithm

3、時間效率:針對同一任務所使用的不同演算法所執行的時間都會不同。

比如:在一個數據集合中查詢資料,我們會從第一個資料開始查詢,一直找到需要的資料為止,如果查詢資料存在,則這種查詢方式(稱之為線性查詢)一般要查詢半個列表。然而,如果資料的排放是有序的,則通過另一種查詢方法會更有效,即二分查詢法,首先從集合的中間開始,如果查詢值在中間值的前面,則從集合的前一半重複查詢,否則從後一半查詢,每執行一次則將查詢的集合減少為前一次的一半。

那麼我們如何使用algorithm來進行實戰操作?

案例:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月又生一對兔子,假如兔子都不死,問第二十個月的兔子對數為多少?

 int[] arr = new int[20];        // 第一個月和第二個月兔子的對數都是1        arr[0] = 1;        arr[1] = 1;        for (int x = 2; x < arr.length; x++) {            arr[x] = arr[x - 2] + arr[x - 1];        }        System.out.println("第二十個月的兔子有 " + arr[19] + " 對");