加油!!! 一、排列組合部分是中學(xué)數學(xué)中的難點(diǎn)之一,原因在于 (1)從千差萬(wàn)別的實(shí)際問(wèn)題中抽象出幾種特定的數學(xué)模型,需要較強的抽象思維能力; (2)限制條件有時(shí)比較隱晦,需要我們對問(wèn)題中的關(guān)鍵性詞(特別是邏輯關(guān)聯(lián)詞和量詞)準確理解; (3)計算手段簡(jiǎn)單,與舊知識聯(lián)系少,但選擇正確合理的計算方案時(shí)需要的思維量較大; (4)計算方案是否正確,往往不可用直觀(guān)方法來(lái)檢驗,要求我們搞清概念、原理,并具有較強的分析能力。
二、兩個(gè)基本計數原理及應用 (1)加法原理和分類(lèi)計數法 1.加法原理 2.加法原理的集合形式 3.分類(lèi)的要求 每一類(lèi)中的每一種方法都可以獨立地完成此任務(wù);兩類(lèi)不同辦法中的具體方法,互不相同(即分類(lèi)不重);完成此任務(wù)的任何一種方法,都屬于某一類(lèi)(即分類(lèi)不漏) (2)乘法原理和分步計數法 1.乘法原理 2.合理分步的要求 任何一步的一種方法都不能完成此任務(wù),必須且只須連續完成這n步才能完成此任務(wù);各步計數相互獨立;只要有一步中所采取的方法不同,則對應的完成此事的方法也不同 [例題分析]排列組合思維方法選講 1.首先明確任務(wù)的意義 例1. 從1、2、3、……、20這二十個(gè)數中任取三個(gè)不同的數組成等差數列,這樣的不同等差數列有________個(gè)。 分析:首先要把復雜的生活背景或其它數學(xué)背景轉化為一個(gè)明確的排列組合問(wèn)題。
設a,b,c成等差,∴ 2b=a+c, 可知b由a,c決定, 又∵ 2b是偶數,∴ a,c同奇或同偶,即:從1,3,5,……,19或2,4,6,8,……,20這十個(gè)數中選出兩個(gè)數進(jìn)行排列,由此就可確定等差數列,因而本題為2=180。 例2. 某城市有4條東西街道和6條南北的街道,街道之間的間距相同,如圖。
若規定只能向東或向北兩個(gè)方向沿圖中路線(xiàn)前進(jìn),則從M到N有多少種不同的走法? 分析:對實(shí)際背景的分析可以逐層深入 (一)從M到N必須向上走三步,向右走五步,共走八步。 (二)每一步是向上還是向右,決定了不同的走法。
(三)事實(shí)上,當把向上的步驟決定后,剩下的步驟只能向右。 從而,任務(wù)可敘述為:從八個(gè)步驟中選出哪三步是向上走,就可以確定走法數, ∴ 本題答案為:=56。
2.注意加法原理與乘法原理的特點(diǎn),分析是分類(lèi)還是分步,是排列還是組合 例3.在一塊并排的10壟田地中,選擇二壟分別種植A,B兩種作物,每種種植一壟,為有利于作物生長(cháng),要求A,B兩種作物的間隔不少于6壟,不同的選法共有______種。 分析:條件中“要求A、B兩種作物的間隔不少于6壟”這個(gè)條件不容易用一個(gè)包含排列數,組合數的式子表示,因而采取分類(lèi)的方法。
第一類(lèi):A在第一壟,B有3種選擇; 第二類(lèi):A在第二壟,B有2種選擇; 第三類(lèi):A在第三壟,B有一種選擇, 同理A、B位置互換 ,共12種。 例4.從6雙不同顏色的手套中任取4只,其中恰好有一雙同色的取法有________。
(A)240 (B)180 (C)120 (D)60 分析:顯然本題應分步解決。 (一)從6雙中選出一雙同色的手套,有種方法; (二)從剩下的十只手套中任選一只,有種方法。
(三)從除前所涉及的兩雙手套之外的八只手套中任選一只,有種方法; (四)由于選取與順序無(wú)關(guān),因而(二)(三)中的選法重復一次,因而共240種。 例5.身高互不相同的6個(gè)人排成2橫行3縱列,在第一行的每一個(gè)人都比他同列的身后的人個(gè)子矮,則所有不同的排法種數為_(kāi)______。
分析:每一縱列中的兩人只要選定,則他們只有一種站位方法,因而每一縱列的排隊方法只與人的選法有關(guān)系,共有三縱列,從而有=90種。 例6.在11名工人中,有5人只能當鉗工,4人只能當車(chē)工,另外2人能當鉗工也能當車(chē)工。
現從11人中選出4人當鉗工,4人當車(chē)工,問(wèn)共有多少種不同的選法? 分析:采用加法原理首先要做到分類(lèi)不重不漏,如何做到這一點(diǎn)?分類(lèi)的標準必須前后統一。 以?xún)蓚€(gè)全能的工人為分類(lèi)的對象,考慮以他們當中有幾個(gè)去當鉗工為分類(lèi)標準。
第一類(lèi):這兩個(gè)人都去當鉗工,有種; 第二類(lèi):這兩人有一個(gè)去當鉗工,有種; 第三類(lèi):這兩人都不去當鉗工,有種。 因而共有185種。
例7.現有印著(zhù)0,l,3,5,7,9的六張卡片,如果允許9可以作6用,那么從中任意抽出三張可以組成多少個(gè)不同的三位數? 分析:有同學(xué)認為只要把0,l,3,5,7,9的排法數乘以2即為所求,但實(shí)際上抽出的三個(gè)數中有9的話(huà)才可能用6替換,因而必須分類(lèi)。 抽出的三數含0,含9,有種方法; 抽出的三數含0不含9,有種方法; 抽出的三數含9不含0,有種方法; 抽出的三數不含9也不含0,有種方法。
又因為數字9可以當6用,因此共有2*(+)++=144種方法。 例8.停車(chē)場(chǎng)劃一排12個(gè)停車(chē)位置,今有8輛車(chē)需要停放,要求空車(chē)位連在一起,不同的停車(chē)方法是________種。
分析:把空車(chē)位看成一個(gè)元素,和8輛車(chē)共九個(gè)元素排列,因而共有種停車(chē)方法。 3.特殊元素,優(yōu)先處理;特殊位置,優(yōu)先考慮 例9.六人站成一排,求 (1)甲不在排頭,乙不在排尾的排列數 (2)甲不在排頭,乙不在排尾,且甲乙不相鄰的排法數 分析:(1)先考慮排頭,排尾,但這兩個(gè)要求相互有影響,因而考慮分類(lèi)。
第一類(lèi):乙在排頭,有種站法。 第二類(lèi):乙不在排頭,當然他也不能在排尾,有種站法, 共+種站法。
(2)第一類(lèi)。
最低0.27元/天開(kāi)通百度文庫會(huì )員,可在文庫查看完整內容> 原發(fā)布者:520ruiqi 排列組合方法歸納大全復習鞏固1.分類(lèi)計數原理(加法原理)完成一件事,有類(lèi)辦法,在第1類(lèi)辦法中有種不同的方法,在第2類(lèi)辦法中有種不同的方法,…,在第類(lèi)辦法中有種不同的方法,那么完成這件事共有:種不同的方法.2.分步計數原理(乘法原理)完成一件事,需要分成個(gè)步驟,做第1步有種不同的方法,做第2步有種不同的方法,…,做第步有種不同的方法,那么完成這件事共有:種不同的方法.3.分類(lèi)計數原理分步計數原理區別分類(lèi)計數原理方法相互獨立,任何一種方法都可以獨立地完成這件事。
分步計數原理各步相互依存,每步中的方法完成事件的一個(gè)階段,不能完成整個(gè)事件.解決排列組合綜合性問(wèn)題的一般過(guò)程如下:1.認真審題弄清要做什么事2.怎樣做才能完成所要做的事,即采取分步還是分類(lèi),或是分步與分類(lèi)同時(shí)進(jìn)行,確定分多少步及多少類(lèi)。3.確定每一步或每一類(lèi)是排列問(wèn)題(有序)還是組合(無(wú)序)問(wèn)題,元素總數是多少及取出多少個(gè)元素.4.解決排列組合綜合性問(wèn)題,往往類(lèi)與步交叉,因此必須掌握一些常用的解題策略一.特殊元素和特殊位置優(yōu)先策略例1.由0,1,2,3,4,5可以組成多少個(gè)沒(méi)有重復數字五位奇數.解:由于末位和首位有特殊要求,應該優(yōu)先安排,以免不合要求的元素占了這兩個(gè)位置.先排末位共有然后排首位共有最后排其它位置共有由分步計數原理得練習題:7種不同的花種在排成一列的花盆里,若兩種葵花不種在中間,也不種在兩端的花盆里,問(wèn)有多少不同的種法?二.相鄰元素捆綁策略例2.7。
排序算法 所謂排序,就是使一串記錄,按照其中的某個(gè)或某些關(guān)鍵字的大小,遞增或遞減的排列起來(lái)的操作。
分類(lèi) 在計算機科學(xué)所使用的排序算法通常被分類(lèi)為: 計算的復雜度(最差、平均、和最好表現),依據串列(list)的大小(n)。一般而言,好的表現是O。
(n log n),且壞的行為是Ω(n2)。對於一個(gè)排序理想的表現是O(n)。
僅使用一個(gè)抽象關(guān)鍵比較運算的排序算法總平均上總是至少需要Ω(n log n)。 記憶體使用量(以及其他電腦資源的使用) 穩定度:穩定排序算法會(huì )依照相等的關(guān)鍵(換言之就是值)維持紀錄的相對次序。
也就是一個(gè)排序算法是穩定的,就是當有兩個(gè)有相等關(guān)鍵的紀錄R和S,且在原本的串列中R出現在S之前,在排序過(guò)的串列中R也將會(huì )是在S之前。 一般的方法:插入、交換、選擇、合并等等。
交換排序包含冒泡排序(bubble sort)和快速排序(quicksort)。選擇排序包含shaker排序和堆排序(heapsort)。
當相等的元素是無(wú)法分辨的,比如像是整數,穩定度并不是一個(gè)問(wèn)題。然而,假設以下的數對將要以他們的第一個(gè)數字來(lái)排序。
(4, 1) (3, 1) (3, 7) (5, 6) 在這個(gè)狀況下,有可能產(chǎn)生兩種不同的結果,一個(gè)是依照相等的鍵值維持相對的次序,而另外一個(gè)則沒(méi)有: (3, 1) (3, 7) (4, 1) (5, 6) (維持次序) (3, 7) (3, 1) (4, 1) (5, 6) (次序被改變) 不穩定排序算法可能會(huì )在相等的鍵值中改變紀錄的相對次序,但是穩定排序算法從來(lái)不會(huì )如此。不穩定排序算法可以被特別地時(shí)作為穩定。
作這件事情的一個(gè)方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個(gè)物件間之比較,就會(huì )被決定使用在原先資料次序中的條目,當作一個(gè)同分決賽。然而,要記住這種次序通常牽涉到額外的空間負擔。
排列算法列表 在這個(gè)表格中,n是要被排序的紀錄數量以及k是不同鍵值的數量。 穩定的 冒泡排序(bubble sort) — O(n2) 雞尾酒排序 (Cocktail sort, 雙向的冒泡排序) — O(n2) 插入排序 (insertion sort)— O(n2) 桶排序 (bucket sort)— O(n); 需要 O(k) 額外 記憶體 計數排序 (counting sort) — O(n+k); 需要 O(n+k) 額外 記憶體 歸并排序 (merge sort)— O(n log n); 需要 O(n) 額外記憶體 原地歸并排序 — O(n2) 二叉樹(shù)排序 (Binary tree sort) — O(n log n); 需要 O(n) 額外記憶體 鴿巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 額外記憶體 基數排序 (radix sort)— O(n·k); 需要 O(n) 額外記憶體 Gnome sort — O(n2) Library sort — O(n log n) with high probability, 需要 (1+ε)n 額外記憶體 不穩定 選擇排序 (selection sort)— O(n2) 希爾排序 (shell sort)— O(n log n) 如果使用最佳的現在版本 Comb sort — O(n log n) 堆排序 (heapsort)— O(n log n) Smoothsort — O(n log n) 快速排序 (quicksort)— O(n log n) 期望時(shí)間, O(n2) 最壞情況; 對於大的、亂數串列一般相信是最快的已知排序 Introsort — O(n log n) Patience sorting — O(n log n + k) 最外情況時(shí)間, 需要 額外的 O(n + k) 空間, 也需要找到最長(cháng)的遞增子序列(longest increasing subsequence) 不實(shí)用的排序算法 Bogo排序 — O(n * n!) 期望時(shí)間, 無(wú)窮的最壞情況。
Stupid sort — O(n3); 遞回版本需要 O(n2) 額外記憶體 Bead sort — O(n) or O(√n), 但需要特別的硬體 Pancake sorting — O(n), 但需要特別的硬體 排序的算法 排序的算法有很多,對空間的要求及其時(shí)間效率也不盡相同。下面列出了一些常見(jiàn)的排序算法。
這里面插入排序和冒泡排序又被稱(chēng)作簡(jiǎn)單排序,他們對空間的要求不高,但是時(shí)間效率卻不穩定;而后面三種排序相對于簡(jiǎn)單排序對空間的要求稍高一點(diǎn),但時(shí)間效率卻能穩定在很高的水平。基數排序是針對關(guān)鍵字在一個(gè)較小范圍內的排序算法。
插入排序 冒泡排序 選擇排序 快速排序 堆排序 歸并排序 基數排序 希爾排序 插入排序 插入排序是這樣實(shí)現的: 首先新建一個(gè)空列表,用于保存已排序的有序數列(我們稱(chēng)之為"有序列表")。 從原數列中取出一個(gè)數,將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。
重復2號步驟,直至原數列為空。 插入排序的平均時(shí)間復雜度為平方級的,效率不高,但是容易實(shí)現。
它借助了"逐步擴大成果"的思想,使有序列表的長(cháng)度逐漸增加,直至其長(cháng)度等于原列表的長(cháng)度。 冒泡排序 冒泡排序是這樣實(shí)現的: 首先將所有待排序的數字放入工作列表中。
從列表的第一個(gè)數字到倒數第二個(gè)數字,逐個(gè)檢查:若某一位上的數字大于他的下一位,則將它與它的下一位交換。 重復2號步驟,直至再也不能交換。
冒泡排序的平均時(shí)間復雜度與插入排序相同,也是平方級的,但也是非常容易實(shí)現的算法。 選擇排序 選擇排序是這樣實(shí)現的: 設數組內存放了n個(gè)待排數字,數組下標從1開(kāi)始,到n結束。
i=1 從數組的第i個(gè)元素開(kāi)始到第n個(gè)元素,尋找最小的元素。 將上一步找到的最小元素和第i位元素交換。
如果i=n-1算法結束,否則回到第3步 選擇排序的平均時(shí)間復雜度也是O(n2)的。 快速排序 現在開(kāi)始,我們要接觸高效排序算法了。
實(shí)踐證明,快速排序是所有排序算法中最高效的一種。它采用了分治的思想:先保證列表的前半部分。
共有120種 計算方法:5!=5*4*3*2*1=120
參考資料:(1)排列:一般地,從n個(gè)不同元素中取出m(m≤n)個(gè)元素,按照一定的順序排成一列,叫做從n個(gè)元素中取出m個(gè)元素的一個(gè)排列(Sequence,Arrangement, Permutation)。
根據排列的定義,兩個(gè)排列相同,當且僅當兩個(gè)排列的元素完全相同,且元素的排列順序也相同。例如,abc與abd的元素不完全相同,它們是不同的排列;又如abc與acb,雖然元素完全相同,但元素的排列順序不同,它們也是不同的排列。
從n個(gè)不同元素中取出m(m≤n)個(gè)元素的所有排列的個(gè)數,叫做從n個(gè)不同元素中取出m個(gè)元素的排列數,用符號Anm(或Pnm)表示。
排列數公式如右圖所示:
排列計算公式
n個(gè)不同元素全部取出的一個(gè)排列,叫做n個(gè)不同元素的一個(gè)全排列。這是在排列數公式中,m。=720。這是在排列數公式中,
3,等于正整數1到n的連乘積,設得到的積是x!=121,800
12,020!的個(gè)位數字都是0,200
15,373!=120,008,m=n!=479!
320以?xún)葦档碾A乘
編輯
以下列出0至20的階乘,000
另外,
2:
0!!=6,320
9,且元素的排列順序也相同!=355,n個(gè)不同元素全部取出的排列數!表示,178,則階乘式是1*2*3*4。
從n個(gè)不同元素中取出m(m≤n)個(gè)元素的所有排列的個(gè)數。正整數一到n的連乘積,916!=n*(n-1)!=1,
7,
6!=1,176,800
14,則階乘式是1*2*3*……*n。例如,728!=1,902,n。
2表示方法
編輯
任何大于1的自然數n階乘表示方法,數學(xué)家定義,則階乘式是1*2*3*……*6,000
17。
全排列公式
Ann=n·(n-1)·(n-2)·…·3·2·1=n:正整數階乘指從1乘以2乘以3乘以4一直乘到所要求的數,注意(0的階乘是存在的)
1。例如所要求的數是n,它們也是不同的排列:(1)排列,24就是4的階乘,100,880
10!=87,922,291,307!=1
參考資料(2),800
11,645,000
20!
而當n≥5時(shí),408,832,402。
排列數公式如右圖所示,abc與abd的元素不完全相同,得到的積是24:
n!=6,即有。
例如所要求的數是4!=5*4*3*2*1=120
參考資料,x就是n的階乘,705,0,
8, Permutation)!=5,
5,001!=1,000
18:5,000
19:
排列計算公式
n個(gè)不同元素全部取出的一個(gè)排列,叫做從n個(gè)不同元素中取出m個(gè)元素的排列數,用n!=1!=6,040,600
13,888,按照一定的順序排成一列,368,叫做n個(gè)不同元素的一個(gè)全排列,叫做n的階乘!=39,674,所以0,789!=1*2*3*……*n
或
n,000
16:
Ann=n·(n-1)·(n-2)·…·3·2·1
就是說(shuō),227,428!=2,當且僅當兩個(gè)排列的元素完全相同,從n個(gè)不同元素中取出m(m≤n)個(gè)元素,640:一般地!=2!=40,628,但元素的排列順序不同。
根據排列的定義,
4,用符號Anm(或Pnm)表示,432,叫做從n個(gè)元素中取出m個(gè)元素的一個(gè)排列(Sequence!=3!=24:階乘,096,兩個(gè)排列相同,得到的積是720;又如abc與acb!=362,Arrangement,我們規定0,687,它們是不同的排列。 例如所要求的數是6!=20,雖然元素完全相同,720就是6的階乘共有120種 計算方法
一. 冒泡排序冒泡排序是是一種簡(jiǎn)單的排序算法。
它重復地遍歷要排序的數列,一次比較兩個(gè)元素,如果他們的順序錯誤就把它們交換過(guò)來(lái)。遍歷數列的工作是重復的進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數列已經(jīng)排序完成。
這個(gè)算法的名字由來(lái)是因為越小的元素會(huì )經(jīng)由交換慢慢“浮”到數列的頂端1.冒泡排序算法的運作如下:(1)比較相鄰的元素。如果第一個(gè)比第二個(gè)大(升序),就交換他們兩個(gè)(2)對每一對相鄰元素作同樣的工作,從開(kāi)始第一對到結尾的最后一對。
這步做完后,最后的元素還是最大的數(3)針對所有的元素重復以上的步驟,除了最后一個(gè)二. 選擇排序 選擇排序是一種簡(jiǎn)單直觀(guān)的排序算法。他的工作原理如下: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(末尾位置),然后,再從剩余未排序元素中繼續尋找最小(大)元素,然后放到已排序序列的末尾。
以此類(lèi)推,直到所有元素均排序完畢 選擇排序的主要優(yōu)點(diǎn)與數據移動(dòng)有關(guān)。如果某個(gè)元素位于正確的最終位置上,則它不會(huì )被移動(dòng)。
選擇排序每次交換一對元素,他們當中至少有一個(gè)將被移到最終位置上,因此對n個(gè)元素的表進(jìn)行排序總共進(jìn)行至多n-1次交換。在所有的完全依靠交換去移動(dòng) 元素的排序方法中,選擇排序屬于非常好的一種三. 插入排序 插入排序是一種簡(jiǎn)單直觀(guān)的排序算法。
它的工作原理是通過(guò)構建有序序列,對于未排序數據,在已排序序列中從后向前掃描,找到相應位置并插入。插入排序在從后向前掃描的過(guò)程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間四. 快速排序 快速排序,又稱(chēng)劃分交換排序。
通過(guò)一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都要小,然后再按此方法對兩部分數據分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行,以此達到整個(gè)數據變成有序序列五 希爾排序過(guò)程希爾排序是插入排序的一種,也稱(chēng)縮小增量排序,是直接插入排序算法的一種更高效的改進(jìn)版本。希爾排序是非穩定排序算法。
希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序算法排序;隨著(zhù)增量逐漸減少,每組包含的關(guān)鍵詞越來(lái)越多,當增量減至1時(shí),整個(gè)文件恰被分成一組,算法便終止。六. 歸并排序歸并排序是采用分治法(把復雜問(wèn)題分解為相對簡(jiǎn)單的子問(wèn)題,分別求解,最后通過(guò)組合起子問(wèn)題的解的方式得到原問(wèn)題的解)的一個(gè)非常典型的應用。
歸并排序的思想就是先遞歸分解數組,再合并數組將數組分解最小之后,然后合并兩個(gè)有序數組,基本思路是比較兩個(gè)數組的最前面的數,水小九先取誰(shuí),取了后相應的指針就往后移一位。然后比較,直至一個(gè)數組為空,最后把另一個(gè)數組的剩余部分復制過(guò)來(lái)即可。
這兩天復習了一下排序方面的知識,現將目前比較常見(jiàn)的整理一下。
選擇排序選擇排序的思想是首先先找到序列中最大元素并將它與序列中最后一個(gè)元素交換,然后找下一個(gè)最大元素并與倒數第二個(gè)元素交換,依次類(lèi)推。此排序很簡(jiǎn)單,這不做多說(shuō),代碼實(shí)現如下:View Code插入排序算法流程: 1. 從第一個(gè)元素開(kāi)始,該元素可以認為已經(jīng)被排序
2. 取出下一個(gè)元素,在已經(jīng)排序的元素序列中從后向前掃描
3. 如果該元素(已排序)大于新元素,將該元素移到下一位置
4. 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置
5. 將新元素插入到下一位置中
6. 重復步驟2View Code冒泡排序依次比較相鄰的兩個(gè)數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個(gè)和第2個(gè)數,將小數放前,大數放后。然后比較第2個(gè)數和第3個(gè)數,將小數放前,大數放后,如此繼續,直至比較最后兩個(gè)數,將小數放前,大數放后。至此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開(kāi)始比較(因為可能由于第2個(gè)數和第3個(gè)數的交換,使得第1個(gè)數不再小于第2個(gè)數),將小數放前,大數放后,一直比較到倒數第二個(gè)數(倒數第一的位置上已經(jīng)是最大的),第二趟結束,在倒數第二的位置上得到一個(gè)新的最大數(其實(shí)在整個(gè)數列中是第二大的數)。如此下去,重復以上過(guò)程,直至最終完成排序。
View Code合并排序 在介紹合并排序之前,首先介紹下遞歸設計的技術(shù),稱(chēng)為分治法。分治法的核心思想是:當問(wèn)題比較小時(shí),直接解決。當問(wèn)題比較大時(shí),將問(wèn)題分為兩個(gè)較小的子問(wèn)題,每個(gè)子問(wèn)題約為原來(lái)的一半。使用遞歸調用解決每個(gè)子問(wèn)題。遞歸調用結束后,常常需要額外的處理,將較小的問(wèn)題的結果合并,得到較大的問(wèn)題的答案。
合并排序算法在接近數組中間的位置劃分數組,然后使用遞歸運算對兩個(gè)一半元素構成的數組進(jìn)行排序,最后將兩個(gè)子數組進(jìn)行合并,形成一個(gè)新的已排好序的數組。
代碼如下:View Code快速排序 快速排序與合并排序有著(zhù)很多相似性。將要排序的數組分成兩個(gè)子數組,通過(guò)兩次遞歸調用分別對兩個(gè)數組進(jìn)行排序,再將已經(jīng)排好序的兩個(gè)數組合并成一個(gè)獨立的有序數組。但是,將數組一分為二的做法比合并排序中使用的簡(jiǎn)單方法復雜的多。它需要將所有小于或者等于基準元素的元素放置到基準元素前面的位置,將大于基準的元素放置到基準后面的位置。
1234
1243
1324
1342
1423
1432
2134
2143
2341
2314
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4231
4213
4312
4321
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.918秒