分治思想快包算法解決凸包問題_第1頁
分治思想快包算法解決凸包問題_第2頁
分治思想快包算法解決凸包問題_第3頁
分治思想快包算法解決凸包問題_第4頁
分治思想快包算法解決凸包問題_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

分治思想快包算法解決凸包問題e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83-目錄目錄分治思想快速凸包算法代碼實(shí)現(xiàn)e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83分治思想快包算法解決凸包問題凸包問題是在計(jì)算幾何中的一個(gè)基本問題,給定一組點(diǎn),我們需要找到一個(gè)包含所有點(diǎn)的最小凸多邊形01解決這個(gè)問題的關(guān)鍵在于如何有效地確定凸包,特別是對于大量數(shù)據(jù)02分治算法是一個(gè)有效的解決方案,下面我們詳細(xì)介紹這種算法03分治思想e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83分治思想分治法是一種在每一步將問題分解為若干個(gè)小問題,然后將這些小問題的解組合成原問題的解的算法設(shè)計(jì)策略分治法的基本步驟是e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83分治思想01分解:將問題分解為兩個(gè)或更多的相同或相似的子問題02解決:解決這些子問題03合并:將子問題的解合并,得到原問題的解e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83分治思想這種方法的好處是,每個(gè)子問題都可以被獨(dú)立地解決,而且這些子問題的解決方式可以重復(fù)使用,從而提高了算法的效率快速凸包算法e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83快速凸包算法快速凸包算法是一種用于求解二維凸包問題的分治算法,該算法由Barber、ollis和Toussaint于1992年提出。這種算法以點(diǎn)的順序?yàn)榛A(chǔ),不斷地刪除不可能是凸包頂點(diǎn)的點(diǎn),直到找到所有的頂點(diǎn)。具體步驟如下將所有的點(diǎn)按x坐標(biāo)從左到右排序初始化一個(gè)空的凸包:將第一個(gè)點(diǎn)加入到凸包中從左到右遍歷剩余的點(diǎn):對于每一個(gè)點(diǎn),都需要在當(dāng)前的凸包中找到一個(gè)點(diǎn)(如果有的話)使得這個(gè)點(diǎn)和當(dāng)前點(diǎn)確定的線段在當(dāng)前的凸包之外。如果找不到這樣的點(diǎn),那么當(dāng)前點(diǎn)就在凸包上。如果找到了這樣的點(diǎn),就更新凸包,用這兩個(gè)點(diǎn)確定的線段來替換原來凸包上的那個(gè)點(diǎn)最后得到的凸包就是原問題的解e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83快速凸包算法這種算法的時(shí)間復(fù)雜度是O(nlogn),其中n是點(diǎn)的數(shù)量代碼實(shí)現(xiàn)e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD28840057458461C7CA0DAD340D15583DEDFC2E3241C4F392EF3A8B4D067B40CF4F149DD7E51F346B0CAB1BCCF6DB2480C67273C6C9E4CE0F3004E5C3397E9DBB399E827F1A1B4315D31B4A1FB924AA6F0CE797FFD0048F7FA626F7785968C67936054B24ADCC2455D90D09048EC83代碼實(shí)現(xiàn)以下是一個(gè)用Python實(shí)現(xiàn)的快速凸包算法的例子在這個(gè)代碼中,首先我們對所有的點(diǎn)按x坐標(biāo)進(jìn)行排序,然后我們將第一個(gè)點(diǎn)添加到當(dāng)前的凸包中然后我們遍歷剩余的點(diǎn),對于每個(gè)點(diǎn),我們尋找在y坐標(biāo)上離當(dāng)前點(diǎn)最近的凸包頂點(diǎn)(我們可以通過比較斜率來找到這個(gè)點(diǎn))如果這個(gè)頂點(diǎn)在y坐標(biāo)上比當(dāng)前點(diǎn)高,那么我們就用當(dāng)前點(diǎn)和這個(gè)頂點(diǎn)之間的線段來替換原來凸包上的那個(gè)頂點(diǎn)如果這個(gè)頂點(diǎn)在y坐標(biāo)上比當(dāng)前點(diǎn)低,那么我們就直接添加當(dāng)前點(diǎn)到凸包中最后我們返回的是包含所有點(diǎn)的凸包這個(gè)算法的時(shí)間復(fù)雜度是O(nlogn)e7d195523061f1c074694c8bbf98be7b1e4b015d796375963FD288400574

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論