堆排序算法的實現(xiàn)規(guī)程_第1頁
堆排序算法的實現(xiàn)規(guī)程_第2頁
堆排序算法的實現(xiàn)規(guī)程_第3頁
堆排序算法的實現(xiàn)規(guī)程_第4頁
堆排序算法的實現(xiàn)規(guī)程_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

堆排序算法的實現(xiàn)規(guī)程一、概述

堆排序算法是一種基于二叉堆數(shù)據(jù)結(jié)構(gòu)的比較排序算法,主要分為兩種類型:大頂堆和小頂堆。堆排序的核心思想是將待排序序列構(gòu)造成一個大頂堆,此時,整個序列的最大值就是堆頂?shù)母?jié)點。隨后,將根節(jié)點與末尾節(jié)點交換,并在剩余元素中重新調(diào)整為大頂堆,重復此過程,即可得到一個有序序列。本規(guī)程將詳細闡述堆排序算法的實現(xiàn)步驟和關鍵操作。

二、堆排序算法的實現(xiàn)步驟

堆排序算法的實現(xiàn)主要包括兩個核心步驟:構(gòu)建堆和調(diào)整堆。具體操作如下:

(一)構(gòu)建堆

構(gòu)建堆的目標是將無序序列轉(zhuǎn)化為滿足堆特性的二叉樹(大頂堆或小頂堆)。以下是構(gòu)建大頂堆的步驟:

1.從最后一個非葉子節(jié)點開始調(diào)整

-二叉堆中,最后一個非葉子節(jié)點的索引為`n/2-1`(`n`為數(shù)組長度)。

-從該節(jié)點向根節(jié)點逐個向上調(diào)整,確保每個子樹滿足大頂堆性質(zhì)。

2.調(diào)整節(jié)點的操作

-對于每個節(jié)點,比較其與左右子節(jié)點的值,若不滿足大頂堆性質(zhì)(即當前節(jié)點小于子節(jié)點),則與較大子節(jié)點交換。

-交換后,繼續(xù)對交換節(jié)點的子樹進行同樣的調(diào)整,直到滿足堆性質(zhì)或到達葉子節(jié)點。

3.示例說明

-以數(shù)組`[3,1,4,1,5,9,2,6,5]`為例,構(gòu)建大頂堆的過程如下:

-初始數(shù)組:`[3,1,4,1,5,9,2,6,5]`

-從索引`3`(值`4`)開始調(diào)整:交換`4`與`9`,數(shù)組變?yōu)閌[3,1,9,1,5,4,2,6,5]`

-調(diào)整`1`(索引`1`):交換`1`與`6`,數(shù)組變?yōu)閌[3,6,9,1,5,4,2,1,5]`

-繼續(xù)調(diào)整,最終構(gòu)建完成大頂堆:`[9,6,5,1,5,4,2,1,3]`

(二)調(diào)整堆

在構(gòu)建完初始堆后,通過多次調(diào)整堆實現(xiàn)排序。具體步驟如下:

1.交換根節(jié)點與末尾節(jié)點

-將堆頂元素(最大值)與末尾元素交換,此時末尾元素即為當前最大值。

2.縮小堆范圍并重新調(diào)整

-堆的大小減一(排除已排序的末尾元素),然后對新的根節(jié)點進行堆調(diào)整,確保其滿足大頂堆性質(zhì)。

3.重復操作

-重復上述步驟,每次減少堆的大小并調(diào)整根節(jié)點,直到堆的大小為1,排序完成。

4.示例說明

-以構(gòu)建完成的大頂堆`[9,6,5,1,5,4,2,1,3]`為例,調(diào)整堆的過程如下:

-第一次交換:`9`與`3`交換,數(shù)組變?yōu)閌[3,6,5,1,5,4,2,1,9]`,堆大小減一。

-調(diào)整新根節(jié)點`6`:交換`6`與`5`,數(shù)組變?yōu)閌[5,6,5,1,5,4,2,1,9]`。

-第二次交換:`6`與`1`交換,數(shù)組變?yōu)閌[5,1,5,1,5,4,2,6,9]`,堆大小減一。

-繼續(xù)調(diào)整,最終排序完成:`[1,1,2,3,4,5,5,6,9]`。

三、堆排序算法的優(yōu)缺點

(一)優(yōu)點

1.時間復雜度穩(wěn)定

-堆排序的最壞、平均、最好時間復雜度均為`O(nlogn)`,優(yōu)于簡單排序算法。

2.空間復雜度低

-堆排序為原地排序,空間復雜度為`O(1)`,無需額外存儲空間。

(二)缺點

1.非穩(wěn)定排序

-堆排序無法保證相同元素的相對順序,屬于不穩(wěn)定排序算法。

2.緩存局部性較差

-堆排序的內(nèi)存訪問模式不如快速排序等算法高效,可能影響性能。

四、總結(jié)

堆排序算法通過構(gòu)建和調(diào)整堆結(jié)構(gòu),實現(xiàn)了高效的`O(nlogn)`排序性能,適用于大規(guī)模數(shù)據(jù)排序。其主要操作包括初始化堆、交換根節(jié)點與末尾元素、以及遞歸調(diào)整堆。盡管存在非穩(wěn)定排序的缺點,但其在空間復雜度和時間穩(wěn)定性方面具有優(yōu)勢,適用于特定場景。

三、堆排序算法的優(yōu)缺點(續(xù))

(一)優(yōu)點(續(xù))

1.時間復雜度穩(wěn)定

-堆排序的最壞、平均、最好時間復雜度均為`O(nlogn)`,優(yōu)于簡單排序算法如冒泡排序(`O(n^2)`)和插入排序。具體分析如下:

-構(gòu)建堆階段:從最后一個非葉子節(jié)點開始,依次向上調(diào)整,每個節(jié)點調(diào)整的時間復雜度為`O(logn)`,共有`n/2`個非葉子節(jié)點,因此總時間為`O(nlogn)`。

-調(diào)整堆階段:每次調(diào)整堆的時間復雜度為`O(logn)`,共進行`n-1`次調(diào)整(每次移除一個元素),因此總時間為`O(nlogn)`。

-這種時間復雜度在小規(guī)模數(shù)據(jù)排序時可能不如快速排序,但在大規(guī)模數(shù)據(jù)排序中表現(xiàn)穩(wěn)定。

2.空間復雜度低

-堆排序為原地排序,空間復雜度為`O(1)`,無需額外存儲空間。具體實現(xiàn)時,排序操作直接在輸入數(shù)組上進行,僅使用常數(shù)個額外變量(如臨時變量用于交換)。

-相比于歸并排序(需要`O(n)`的額外空間)和快速排序(平均`O(logn)`,最壞`O(n)`),堆排序在內(nèi)存使用上更具優(yōu)勢,特別適用于內(nèi)存受限的環(huán)境。

3.可并行化

-堆調(diào)整操作具有一定的獨立性,理論上可以并行執(zhí)行。雖然實際并行化實現(xiàn)較為復雜,但在多核處理器上,可以嘗試將多個節(jié)點的堆調(diào)整并行處理,進一步提升性能。

(二)缺點(續(xù))

1.非穩(wěn)定排序

-堆排序無法保證相同元素的相對順序。例如,兩個值為`5`的元素在排序后,其前后順序可能與初始順序不同。

-這一缺點使得堆排序不適用于需要穩(wěn)定排序的場景,如某些統(tǒng)計任務或特定應用需求中需要保持原始順序。

2.緩存局部性較差

-堆排序的內(nèi)存訪問模式不如快速排序等分治算法高效。在堆調(diào)整過程中,節(jié)點訪問較為隨機,導致緩存命中率較低,可能影響性能。

-具體表現(xiàn)為:在堆調(diào)整時,需要頻繁訪問數(shù)組的非連續(xù)位置,而現(xiàn)代計算機的緩存設計更傾向于連續(xù)內(nèi)存訪問,因此堆排序的緩存性能相對較差。

3.實現(xiàn)復雜度較高

-相比于冒泡排序或插入排序,堆排序的實現(xiàn)涉及遞歸或循環(huán)的堆調(diào)整邏輯,代碼量更多,且容易出錯。

-例如,堆調(diào)整過程中需要正確處理父子節(jié)點的關系,并確保遞歸或循環(huán)能夠覆蓋所有子樹,稍有不慎可能導致排序錯誤。

四、堆排序算法的實現(xiàn)細節(jié)

(一)大頂堆與小頂堆的選擇

1.大頂堆

-定義:父節(jié)點值始終大于或等于子節(jié)點值。

-應用場景:用于獲取最大值(如優(yōu)先隊列的最大堆實現(xiàn))。

-實現(xiàn)時,調(diào)整操作需確保父節(jié)點值大于子節(jié)點,否則交換。

2.小頂堆

-定義:父節(jié)點值始終小于或等于子節(jié)點值。

-應用場景:用于獲取最小值(如優(yōu)先隊列的最小堆實現(xiàn))。

-實現(xiàn)時,調(diào)整操作需確保父節(jié)點值小于子節(jié)點,否則交換。

-兩種堆的調(diào)整邏輯類似,僅需交換比較方向。

(二)堆調(diào)整的具體操作步驟

以大頂堆為例,詳細說明堆調(diào)整的步驟:

1.初始化節(jié)點索引

-從待調(diào)整節(jié)點開始,假設當前節(jié)點索引為`i`,數(shù)組長度為`n`。

2.計算子節(jié)點索引

-左子節(jié)點索引:`2i+1`

-右子節(jié)點索引:`2i+2`

3.比較并交換

-比較左子節(jié)點與當前節(jié)點:

-若左子節(jié)點值大于當前節(jié)點值,則交換兩者位置,并將當前節(jié)點更新為左子節(jié)點索引。

-比較右子節(jié)點(若存在)與當前節(jié)點:

-若右子節(jié)點值大于當前節(jié)點值,且大于已比較的左子節(jié)點值,則交換兩者位置,并將當前節(jié)點更新為右子節(jié)點索引。

4.終止條件

-當當前節(jié)點無子節(jié)點(即索引超出數(shù)組范圍),或左右子節(jié)點均不大于當前節(jié)點時,停止調(diào)整。

5.示例代碼片段(偽代碼)

```

functionmaxHeapify(arr,n,i):

largest=i//初始化最大值索引為當前節(jié)點

left=2i+1//左子節(jié)點索引

right=2i+2//右子節(jié)點索引

//若左子節(jié)點大于當前節(jié)點

ifleft<nandarr[left]>arr[largest]:

largest=left

//若右子節(jié)點大于當前節(jié)點

ifright<nandarr[right]>arr[largest]:

largest=right

//若最大值不在當前節(jié)點

iflargest!=i:

swap(arr[i],arr[largest])//交換值

maxHeapify(arr,n,largest)//遞歸調(diào)整受影響的子樹

```

(三)堆排序的完整實現(xiàn)步驟

堆排序分為兩個主要階段:構(gòu)建堆和調(diào)整堆。以下是詳細步驟:

1.構(gòu)建初始堆

-從最后一個非葉子節(jié)點開始,依次向前調(diào)整每個節(jié)點,確保整個數(shù)組滿足大頂堆性質(zhì)。

-調(diào)整順序:從`n/2-1`到`0`(`n`為數(shù)組長度)。

-時間復雜度:`O(n)`,盡管調(diào)整每個節(jié)點需`O(logn)`,但整體優(yōu)化后為線性時間。

2.排序階段

-交換根節(jié)點與末尾元素:將堆頂元素(最大值)與數(shù)組末尾元素交換,此時末尾元素已排序。

-縮小堆范圍:堆的大小減一(排除已排序的末尾元素),然后對新的根節(jié)點進行堆調(diào)整。

-重復操作:重復上述步驟,直到堆的大小為1,此時數(shù)組完全有序。

3.示例代碼片段(偽代碼)

```

functionheapSort(arr):

n=arr.length

//構(gòu)建初始堆

forifromn/2-1downto0:

maxHeapify(arr,n,i)

//逐個提取元素

forifromn-1downto0:

swap(arr[0],arr[i])//交換根節(jié)點與末尾元素

maxHeapify(arr,i,0)//調(diào)整剩余堆

```

五、堆排序的應用場景

堆排序適用于以下場景:

1.大規(guī)模數(shù)據(jù)排序

-當數(shù)據(jù)規(guī)模較大,快速排序的最壞情況時間復雜度`O(n^2)`風險較高時,堆排序提供穩(wěn)定的`O(nlogn)`性能。

2.內(nèi)存受限環(huán)境

-由于堆排序為原地排序,空間復雜度為`O(1)`,適用于內(nèi)存資源有限的設備或應用。

3.優(yōu)先隊列實現(xiàn)

-堆結(jié)構(gòu)是優(yōu)先隊列的典型實現(xiàn)方式,堆排序可用于構(gòu)建高效的最大值或最小值優(yōu)先隊列。

4.教學與算法研究

-堆排序的實現(xiàn)涉及遞歸和二叉樹性質(zhì),適合用于教學和算法研究,幫助理解堆結(jié)構(gòu)的應用。

六、總結(jié)(續(xù))

堆排序算法通過構(gòu)建和調(diào)整堆結(jié)構(gòu),實現(xiàn)了高效的`O(nlogn)`排序性能,適用于大規(guī)模數(shù)據(jù)排序和內(nèi)存受限環(huán)境。其主要操作包括初始化堆、交換根節(jié)點與末尾元素、以及遞歸調(diào)整堆。盡管存在非穩(wěn)定排序和緩存局部性較差的缺點,但其在空間復雜度和時間穩(wěn)定性方面具有優(yōu)勢,適用于特定場景。堆排序的實現(xiàn)涉及遞歸和二叉樹性質(zhì),適合用于教學和算法研究,幫助理解堆結(jié)構(gòu)的應用。

一、概述

堆排序算法是一種基于二叉堆數(shù)據(jù)結(jié)構(gòu)的比較排序算法,主要分為兩種類型:大頂堆和小頂堆。堆排序的核心思想是將待排序序列構(gòu)造成一個大頂堆,此時,整個序列的最大值就是堆頂?shù)母?jié)點。隨后,將根節(jié)點與末尾節(jié)點交換,并在剩余元素中重新調(diào)整為大頂堆,重復此過程,即可得到一個有序序列。本規(guī)程將詳細闡述堆排序算法的實現(xiàn)步驟和關鍵操作。

二、堆排序算法的實現(xiàn)步驟

堆排序算法的實現(xiàn)主要包括兩個核心步驟:構(gòu)建堆和調(diào)整堆。具體操作如下:

(一)構(gòu)建堆

構(gòu)建堆的目標是將無序序列轉(zhuǎn)化為滿足堆特性的二叉樹(大頂堆或小頂堆)。以下是構(gòu)建大頂堆的步驟:

1.從最后一個非葉子節(jié)點開始調(diào)整

-二叉堆中,最后一個非葉子節(jié)點的索引為`n/2-1`(`n`為數(shù)組長度)。

-從該節(jié)點向根節(jié)點逐個向上調(diào)整,確保每個子樹滿足大頂堆性質(zhì)。

2.調(diào)整節(jié)點的操作

-對于每個節(jié)點,比較其與左右子節(jié)點的值,若不滿足大頂堆性質(zhì)(即當前節(jié)點小于子節(jié)點),則與較大子節(jié)點交換。

-交換后,繼續(xù)對交換節(jié)點的子樹進行同樣的調(diào)整,直到滿足堆性質(zhì)或到達葉子節(jié)點。

3.示例說明

-以數(shù)組`[3,1,4,1,5,9,2,6,5]`為例,構(gòu)建大頂堆的過程如下:

-初始數(shù)組:`[3,1,4,1,5,9,2,6,5]`

-從索引`3`(值`4`)開始調(diào)整:交換`4`與`9`,數(shù)組變?yōu)閌[3,1,9,1,5,4,2,6,5]`

-調(diào)整`1`(索引`1`):交換`1`與`6`,數(shù)組變?yōu)閌[3,6,9,1,5,4,2,1,5]`

-繼續(xù)調(diào)整,最終構(gòu)建完成大頂堆:`[9,6,5,1,5,4,2,1,3]`

(二)調(diào)整堆

在構(gòu)建完初始堆后,通過多次調(diào)整堆實現(xiàn)排序。具體步驟如下:

1.交換根節(jié)點與末尾節(jié)點

-將堆頂元素(最大值)與末尾元素交換,此時末尾元素即為當前最大值。

2.縮小堆范圍并重新調(diào)整

-堆的大小減一(排除已排序的末尾元素),然后對新的根節(jié)點進行堆調(diào)整,確保其滿足大頂堆性質(zhì)。

3.重復操作

-重復上述步驟,每次減少堆的大小并調(diào)整根節(jié)點,直到堆的大小為1,排序完成。

4.示例說明

-以構(gòu)建完成的大頂堆`[9,6,5,1,5,4,2,1,3]`為例,調(diào)整堆的過程如下:

-第一次交換:`9`與`3`交換,數(shù)組變?yōu)閌[3,6,5,1,5,4,2,1,9]`,堆大小減一。

-調(diào)整新根節(jié)點`6`:交換`6`與`5`,數(shù)組變?yōu)閌[5,6,5,1,5,4,2,1,9]`。

-第二次交換:`6`與`1`交換,數(shù)組變?yōu)閌[5,1,5,1,5,4,2,6,9]`,堆大小減一。

-繼續(xù)調(diào)整,最終排序完成:`[1,1,2,3,4,5,5,6,9]`。

三、堆排序算法的優(yōu)缺點

(一)優(yōu)點

1.時間復雜度穩(wěn)定

-堆排序的最壞、平均、最好時間復雜度均為`O(nlogn)`,優(yōu)于簡單排序算法。

2.空間復雜度低

-堆排序為原地排序,空間復雜度為`O(1)`,無需額外存儲空間。

(二)缺點

1.非穩(wěn)定排序

-堆排序無法保證相同元素的相對順序,屬于不穩(wěn)定排序算法。

2.緩存局部性較差

-堆排序的內(nèi)存訪問模式不如快速排序等算法高效,可能影響性能。

四、總結(jié)

堆排序算法通過構(gòu)建和調(diào)整堆結(jié)構(gòu),實現(xiàn)了高效的`O(nlogn)`排序性能,適用于大規(guī)模數(shù)據(jù)排序。其主要操作包括初始化堆、交換根節(jié)點與末尾元素、以及遞歸調(diào)整堆。盡管存在非穩(wěn)定排序的缺點,但其在空間復雜度和時間穩(wěn)定性方面具有優(yōu)勢,適用于特定場景。

三、堆排序算法的優(yōu)缺點(續(xù))

(一)優(yōu)點(續(xù))

1.時間復雜度穩(wěn)定

-堆排序的最壞、平均、最好時間復雜度均為`O(nlogn)`,優(yōu)于簡單排序算法如冒泡排序(`O(n^2)`)和插入排序。具體分析如下:

-構(gòu)建堆階段:從最后一個非葉子節(jié)點開始,依次向上調(diào)整,每個節(jié)點調(diào)整的時間復雜度為`O(logn)`,共有`n/2`個非葉子節(jié)點,因此總時間為`O(nlogn)`。

-調(diào)整堆階段:每次調(diào)整堆的時間復雜度為`O(logn)`,共進行`n-1`次調(diào)整(每次移除一個元素),因此總時間為`O(nlogn)`。

-這種時間復雜度在小規(guī)模數(shù)據(jù)排序時可能不如快速排序,但在大規(guī)模數(shù)據(jù)排序中表現(xiàn)穩(wěn)定。

2.空間復雜度低

-堆排序為原地排序,空間復雜度為`O(1)`,無需額外存儲空間。具體實現(xiàn)時,排序操作直接在輸入數(shù)組上進行,僅使用常數(shù)個額外變量(如臨時變量用于交換)。

-相比于歸并排序(需要`O(n)`的額外空間)和快速排序(平均`O(logn)`,最壞`O(n)`),堆排序在內(nèi)存使用上更具優(yōu)勢,特別適用于內(nèi)存受限的環(huán)境。

3.可并行化

-堆調(diào)整操作具有一定的獨立性,理論上可以并行執(zhí)行。雖然實際并行化實現(xiàn)較為復雜,但在多核處理器上,可以嘗試將多個節(jié)點的堆調(diào)整并行處理,進一步提升性能。

(二)缺點(續(xù))

1.非穩(wěn)定排序

-堆排序無法保證相同元素的相對順序。例如,兩個值為`5`的元素在排序后,其前后順序可能與初始順序不同。

-這一缺點使得堆排序不適用于需要穩(wěn)定排序的場景,如某些統(tǒng)計任務或特定應用需求中需要保持原始順序。

2.緩存局部性較差

-堆排序的內(nèi)存訪問模式不如快速排序等分治算法高效。在堆調(diào)整過程中,節(jié)點訪問較為隨機,導致緩存命中率較低,可能影響性能。

-具體表現(xiàn)為:在堆調(diào)整時,需要頻繁訪問數(shù)組的非連續(xù)位置,而現(xiàn)代計算機的緩存設計更傾向于連續(xù)內(nèi)存訪問,因此堆排序的緩存性能相對較差。

3.實現(xiàn)復雜度較高

-相比于冒泡排序或插入排序,堆排序的實現(xiàn)涉及遞歸或循環(huán)的堆調(diào)整邏輯,代碼量更多,且容易出錯。

-例如,堆調(diào)整過程中需要正確處理父子節(jié)點的關系,并確保遞歸或循環(huán)能夠覆蓋所有子樹,稍有不慎可能導致排序錯誤。

四、堆排序算法的實現(xiàn)細節(jié)

(一)大頂堆與小頂堆的選擇

1.大頂堆

-定義:父節(jié)點值始終大于或等于子節(jié)點值。

-應用場景:用于獲取最大值(如優(yōu)先隊列的最大堆實現(xiàn))。

-實現(xiàn)時,調(diào)整操作需確保父節(jié)點值大于子節(jié)點,否則交換。

2.小頂堆

-定義:父節(jié)點值始終小于或等于子節(jié)點值。

-應用場景:用于獲取最小值(如優(yōu)先隊列的最小堆實現(xiàn))。

-實現(xiàn)時,調(diào)整操作需確保父節(jié)點值小于子節(jié)點,否則交換。

-兩種堆的調(diào)整邏輯類似,僅需交換比較方向。

(二)堆調(diào)整的具體操作步驟

以大頂堆為例,詳細說明堆調(diào)整的步驟:

1.初始化節(jié)點索引

-從待調(diào)整節(jié)點開始,假設當前節(jié)點索引為`i`,數(shù)組長度為`n`。

2.計算子節(jié)點索引

-左子節(jié)點索引:`2i+1`

-右子節(jié)點索引:`2i+2`

3.比較并交換

-比較左子節(jié)點與當前節(jié)點:

-若左子節(jié)點值大于當前節(jié)點值,則交換兩者位置,并將當前節(jié)點更新為左子節(jié)點索引。

-比較右子節(jié)點(若存在)與當前節(jié)點:

-若右子節(jié)點值大于當前節(jié)點值,且大于已比較的左子節(jié)點值,則交換兩者位置,并將當前節(jié)點更新為右子節(jié)點索引。

4.終止條件

-當當前節(jié)點無子節(jié)點(即索引超出數(shù)組范圍),或左右子節(jié)點均不大于當前節(jié)點時,停止調(diào)整。

5.示例代碼片段(偽代碼)

```

functionmaxHeapify(arr,n,i):

largest=i//初始化最大值索引為當前節(jié)點

left=2i+1//左子節(jié)點索引

right=2i+2//右子節(jié)點索引

//若左子節(jié)點大于當前節(jié)點

ifleft<nandarr[left]>arr[largest]:

largest=left

//若右子節(jié)點大于當前節(jié)點

ifright<nandarr[right]>arr[largest]:

largest=right

//若最大值不在當前節(jié)點

iflargest!=i:

swap(arr[i],arr[largest])//交換值

maxHeapify(arr,n,largest)//遞歸調(diào)整受影響的子樹

```

(三)堆排序的完整實現(xiàn)步驟

堆排序分為兩個主要階段:構(gòu)建堆和調(diào)整堆。以下是詳細步驟:

1.構(gòu)建初始堆

-從最后一個非葉子節(jié)點開始,依次向前調(diào)整每個節(jié)點,確保整個數(shù)

溫馨提示

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

評論

0/150

提交評論