【演算法資料結構Java實現】歐幾里得演算法
1.背景
歐幾里得演算法是一個求最大因子的快速演算法。如果m,n存在最大因子k,假設m=x*n+r,那麼m和n可以整出k的話,r也肯定可以整除k
因為定理:如果M>N,則M mod N<M/2 ,說明時間複雜度是O(log(n))
2.程式碼
package Algorithm_analysis;
public class Euclid {
public static void main(String[] args){
int m=63;
int n=18;
int remainder=0;
while(n!=0){
remainder=m%n;
m=n;
n=remainder;
}
System.out.print(m);
}
}
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- 演算法與資料結構-棧(Stack)-Java實現演算法資料結構Java
- 【演算法資料結構Java實現】折半查詢演算法資料結構Java
- 資料結構與演算法——常用高階資料結構及其Java實現資料結構演算法Java
- 資料結構與演算法(java)資料結構演算法Java
- js實現資料結構及演算法之排序演算法JS資料結構演算法排序
- 資料結構和演算法-切片實現棧資料結構演算法
- 資料結構與演算法——基數排序簡單Java實現資料結構演算法排序Java
- 【演算法資料結構Java實現】Java實現動態規劃(揹包問題)演算法資料結構Java動態規劃
- Java的資料結構和演算法Java資料結構演算法
- 歐幾里得演算法與擴充套件歐幾里得演算法演算法套件
- 【資料結構】 各種排序演算法的實現資料結構排序演算法
- 資料結構和演算法(Golang實現)(25)排序演算法-快速排序資料結構演算法Golang排序
- 資料結構與演算法 | 如何實現LRU快取淘汰演算法資料結構演算法快取
- [資料結構與演算法]-排序演算法之插入排序(insertion sort)及其實現(Java)資料結構演算法排序Java
- 資料結構:初識(資料結構、演算法與演算法分析)資料結構演算法
- Java資料結構與排序演算法 (二)Java資料結構排序演算法
- Java資料結構與排序演算法 (三)Java資料結構排序演算法
- Java資料結構與排序演算法 (一)Java資料結構排序演算法
- 資料結構和演算法(一)線性表實現資料結構演算法
- 資料結構和演算法的圖解和實現資料結構演算法圖解
- 資料結構&演算法資料結構演算法
- 資料結構演算法資料結構演算法
- Java資料結構和演算法(六)—演算法—反轉連結串列Java資料結構演算法
- Java資料結構和演算法(一)連結串列Java資料結構演算法
- 資料結構與演算法-資料結構(棧)資料結構演算法
- 資料結構&演算法實踐—堆排序資料結構演算法排序
- 資料結構&演算法實踐—Bogo排序資料結構演算法Go排序
- 資料結構&演算法實踐—梳子排序資料結構演算法排序
- 資料結構&演算法實踐—奇偶排序資料結構演算法排序
- 【演算法與資料結構專場】BitMap演算法基本操作程式碼實現演算法資料結構
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- 資料結構與演算法 | 棧的實現及應用資料結構演算法
- 資料結構與演算法——B樹的C++實現資料結構演算法C++
- 演算法與資料結構-連結串列((linked-list)-Java實現單向連結串列演算法資料結構Java
- [資料結構與演算法] 排序演算法資料結構演算法排序
- 前端演算法 - 資料結構前端演算法資料結構
- 基本資料結構演算法資料結構演算法
- 資料結構——Floyd演算法資料結構演算法