0.冒泡排序(Bubble Sort)
每次選(冒)出一個(gè)數(shù),故稱(chēng)冒泡。
0.0算法描述
比較相鄰的元素。如果順序錯(cuò)誤,交換;
對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì),這樣在最后的元素應(yīng)該會(huì)是最大的數(shù);
針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)(n-1次排序);
1.選擇排序(Selection Sort)
選擇排序 是表現(xiàn)最穩(wěn)定的排序算法之一 ,因?yàn)闊o(wú)論什么數(shù)據(jù)進(jìn)去都是O(n2)的時(shí)間復(fù)雜度 ,所以數(shù)據(jù)規(guī)模越小越好。不占用額外的內(nèi)存空間。
1.0算法描述
- 首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置
- 再?gòu)?strong>剩余未排序元素中繼續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。
- 以此類(lèi)推,直到所有元素均排序完畢。
2.快速排序(Quick Sort)
快速排序使用分治法[1]來(lái)把一個(gè)串(list)分為兩個(gè)子串(sub-lists):通過(guò)一趟排序?qū)⒋庞涗浄指舫?strong>獨(dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分的關(guān)鍵字小,則可分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。
2.0算法描述
從數(shù)列中挑出一個(gè)元素,稱(chēng)為 “基準(zhǔn)”(pivot );
重新排序數(shù)列,所有元素比基準(zhǔn)值小的擺放在基準(zhǔn)前面,所有元素比基準(zhǔn)值大的擺在基準(zhǔn)的后面(相同的數(shù)可以到任一邊)。在這個(gè)分區(qū)退出之后,該基準(zhǔn)就處于數(shù)列的中間位置。這個(gè)稱(chēng)為分區(qū)(partition)操作
遞歸地(recursive)把小于基準(zhǔn)值元素的子數(shù)列和大于基準(zhǔn)值元素的子數(shù)列排序。
-
把一片領(lǐng)土分解,分解為若干塊小部分,然后一塊塊地占領(lǐng)征服,被分解的可以是不同的政治派別或是其他什么,然后讓他們彼此異化。 ?