成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java編程內功-數據結構與算法「分治算法」

開發 前端 算法
分支算法可以求解的一些經典文圖:二分搜索、大整數乘法、棋盤覆蓋、合并排序、快速排序、線性時間選擇、最接近點對問題、循環賽日程表、漢諾塔。

[[398991]]

算法介紹

  1. 分治法是一種很重要的算法。字面上的解釋是“分而治之”,就是把一個復雜的問題分成兩個或更多相同或相似的子問題,再把子問題分成更小的子問題…直到最后子問題可以簡單的直接求解,原問題解即是子問題的解的合并。這個技巧是很多高效算法的基礎,如排序算法(快速排序、歸并排序),傅里葉變換(快速傅里葉變換)...
  2. 分支算法可以求解的一些經典文圖:二分搜索、大整數乘法、棋盤覆蓋、合并排序、快速排序、線性時間選擇、最接近點對問題、循環賽日程表、漢諾塔。

分治算法的基本步驟

分治法在每一層遞歸上都有三個步驟:

  1. 分解:將原有問題分解為若干個規模較小,相互獨立,與原問題形式相同的子問題
  2. 解決:若干子問題規模較小而容易被解決則直接解決,否則遞歸地解決各個子問題
  3. 合并:將各個子問題的解合并為原問題的解

分治算法設計模式

分治(Divide-and-Conquer(P))算法模式如下圖,

其中|P| 表示問題P的規模,n0為一閥值,表示當問題p的規模不超過n0時,問題已容易直接解出,不必再繼續分解。ADHOC(P)是該分治算法中的基本子算法,用于直接解小規模的問題P。因此,當P的規模不超過n0時直接用ADHOC(P)求解。算法MERGE(y1,y2,…yk)是該分治法中的合并子算法,用于將P的子問題P1,P2,…Pk的相應解y1,y2…yk合并為P的解。

分治算法實踐-漢諾塔

在一根柱子上從下往上按照大小順序放著64片黃金圓盤,把圓盤從下面開始按大小順序重新擺放在另一根柱子上,并且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個盤。

思路分析:

  1. 如果是有一個盤,A->C
  2. 如果是 n>=2 盤情況,我們總是可以看成兩個盤,一個是最下邊的一個盤,一個是上面的所有盤:先把最上面的所有盤從A移動到B,把最下面的一個盤從A移動到C,把B塔的所有盤從B移動到C。
  1. package com.xie.algorithm; 
  2.  
  3. public class Hanoitower { 
  4.     public static void main(String[] args) { 
  5.         hanoiTower(3, 'A''B''C'); 
  6.         /** 
  7.          * 第1個盤從A->C 
  8.          * 第2個盤從A->B 
  9.          * 第1個盤從C->B 
  10.          * 第3個盤從A->C 
  11.          * 第1個盤從B->A 
  12.          * 第2個盤從B->C 
  13.          * 第1個盤從A->C 
  14.          */ 
  15.     } 
  16.  
  17.     public static void hanoiTower(int num, char a, char b, char c) { 
  18.         //如果只有一個盤 
  19.         if (num == 1) { 
  20.             System.out.println("第1個盤從" + a + "->" + c); 
  21.         } else { 
  22.             //如果是 n>=2 盤情況,我們總是可以看成兩個盤,一個是最下邊的一個盤,一個是上面的所有盤 
  23.             //1.先把最上面的盤從A移動到B,移動過程會使用到C 
  24.             hanoiTower(num - 1, a, c, b); 
  25.             //2.把最下面的一個盤從A移動到C 
  26.             System.out.println("第" + num + "個盤從" + a + "->" + c); 
  27.             //3.把B塔的所有盤從B移動到C,移動過程使用到A塔 
  28.             hanoiTower(num - 1, b, a, c); 
  29.         } 
  30.     } 

 【編輯推薦】

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-03-09 06:30:32

JAVA數據結構算法

2021-03-18 08:44:20

Java數據結構算法

2021-04-13 09:37:41

Java數據結構算法

2021-03-08 06:28:57

JAVA數據結構與算法稀疏數組

2021-03-10 08:42:19

Java數據結構算法

2021-03-17 09:27:36

Java數據結構算法

2021-04-15 09:36:44

Java數據結構算法

2021-03-12 09:13:47

Java數據結構算法

2021-03-23 08:33:22

Java數據結構算法

2021-03-26 08:40:28

Java數據結構算法

2021-05-13 07:34:56

Java數據結構算法

2021-03-14 08:27:40

Java數據結構算法

2021-04-22 10:07:45

Java數據結構算法

2021-04-07 09:26:37

Java數據結構算法

2021-04-16 09:40:52

Java數據結構算法

2021-03-24 10:41:04

Java數據結構算法

2021-04-23 09:12:09

Java數據結構算法

2021-03-11 08:53:20

Java數據結構算法

2021-05-08 08:28:38

Java數據結構算法

2020-10-20 08:14:08

算法與數據結構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美精品一区 | 最近中文字幕在线视频1 | 最新国产视频 | 99久久日韩精品免费热麻豆美女 | 国产亚洲成av人在线观看导航 | 欧美视频第三页 | 久久久久久国产 | 亚洲午夜精品久久久久久app | 中文字幕av在线一二三区 | 久久精品69 | 欧美精品福利 | 91av免费观看| 欧美色成人 | 国产精品福利一区二区三区 | 91精品国产色综合久久不卡98口 | 国产精品视频一区二区三区 | 国产福利小视频 | 午夜久久 | 免费一级做a爰片久久毛片潮喷 | 午夜精品 | 成人激情视频免费观看 | 91在线网 | 黄色成人在线观看 | 国产极品车模吞精高潮呻吟 | 黄色日本视频 | 免费观看av| 婷婷中文字幕 | 综合国产在线 | 日韩在线不卡 | 国产精品久久久久久一区二区三区 | 91精品国产91久久久久游泳池 | 观看av| 亚洲国产精品一区二区第一页 | 在线亚州| 国产精品综合色区在线观看 | 日韩av一区在线观看 | 国产亚洲精品美女久久久久久久久久 | 亚洲欧美综合精品久久成人 | 欧美三级在线 | 一区二区三区在线免费观看 | 一区二区三区欧美在线观看 |