JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進(jìn),SHELL排序法是 插入法的改進(jìn).所以從根本上來(lái)說(shuō)可以歸納為兩種不同的排序方法:即:插入法&冒泡法
一 插入法: 遍歷排序集合,每到一個(gè)元素時(shí),都要將這個(gè)元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個(gè)移動(dòng)到當(dāng)前范圍內(nèi)它最應(yīng)該出現(xiàn)的位置。交換是相鄰遍歷移動(dòng),雙重循環(huán)控制實(shí)現(xiàn).這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規(guī)整,過(guò)來(lái)一個(gè),規(guī)整一個(gè). 處理代碼如下:
二冒泡法: 比較容易,它的內(nèi)層循環(huán)保證遍歷一次后,集合中最?。ù螅┰爻霈F(xiàn)在它的正確位置,下一次就是次小元素。。。該方法在集合分布的各種情況下交換移動(dòng)的次數(shù)基本不變,屬于最慢的一種排序。實(shí)現(xiàn)也是雙重循環(huán)控制。這種排序法屬于過(guò)江龍,就是要找到極端,但是過(guò)獎(jiǎng)龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑. 處理代碼如下:
三選擇法: 該方法只是通過(guò)遍歷集合記錄最?。ù螅┰氐奈恢茫淮伪闅v完后,再進(jìn)行交換位置操作,類似冒泡,但在比較過(guò)程中,不進(jìn)行交換操作,只記錄元素位置。一次遍歷只進(jìn)行一次交換操作。這個(gè)對(duì)與交換次序比較費(fèi)時(shí)的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數(shù)據(jù),待遍歷數(shù)據(jù)完了之后,我再處理,不像冒泡法那樣只要比自己極端一點(diǎn)的就要處理,選擇法只處理本身范圍內(nèi)的最極端數(shù)據(jù).
四 Shell排序: 它是對(duì)插入排序的一種改進(jìn),是考慮將集合元素按照一定的基數(shù)劃分成組去排序,讓每一組在局部范圍內(nèi)先排成基本有序,最后在進(jìn)行一次所有元素的插入排序。
|
|
來(lái)自: WindySky > 《JAVA總結(jié)》