国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JAVA四種基本排序方法實(shí)例總結(jié)

2019-11-20 12:00:10
字體:
供稿:網(wǎng)友

本文實(shí)例講述了JAVA四種基本排序方法。分享給大家供大家參考。具體如下:

JAVA四種基本排序,包括冒泡法,插入法,選擇法,SHELL排序法.其中選擇法是冒泡法的改進(jìn),SHELL排序法是 插入法的改進(jìn).所以從根本上來說可以歸納為兩種不同的排序方法:即:插入法&冒泡法

一 插入法:

遍歷排序集合,每到一個(gè)元素時(shí),都要將這個(gè)元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個(gè)移動(dòng)到當(dāng)前范圍內(nèi)它最應(yīng)該出現(xiàn)的位置。交換是相鄰遍歷移動(dòng),雙重循環(huán)控制實(shí)現(xiàn).這種排序法屬于地頭蛇類型,在我的地牌上我要把所有的東西按一定的順序規(guī)整,過來一個(gè),規(guī)整一個(gè).

處理代碼如下:

public void sort(int[] data) {int temp; for(int i=1; i〈data.length; i++){for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){temp=date[j]; data[j]=data[j-1]; data[j-1]=temp; }} }

二 冒泡法:

比較容易,它的內(nèi)層循環(huán)保證遍歷一次后,集合中最小(大)元素出現(xiàn)在它的正確位置,下一次就是次小元素。。。該方法在集合分布的各種情況下交換移動(dòng)的次數(shù)基本不變,屬于最慢的一種排序。實(shí)現(xiàn)也是雙重循環(huán)控制。這種排序法屬于過江龍,就是要找到極端,但是過獎(jiǎng)龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑.

處理代碼如下:

public static int [] maopao(int[] data) {int temp; for(int i=0; i〈data.length-1; i++){for(int j=i+1; j〈data.length; j++){if(data[i]〈data[j]){temp=data[i]; data[i]=data[j]; data[j]=temp; } }}return data;

三 選擇法:

該方法只是通過遍歷集合記錄最小(大)元素的位置,一次遍歷完后,再進(jìn)行交換位置操作,類似冒泡,但在比較過程中,不進(jìn)行交換操作,只記錄元素位置。一次遍歷只進(jìn)行一次交換操作。這個(gè)對與交換次序比較費(fèi)時(shí)的元素比較適合。這種排序法比冒泡法要城府要深的多,我先記住極端數(shù)據(jù),待遍歷數(shù)據(jù)完了之后,我再處理,不像冒泡法那樣只要比自己極端一點(diǎn)的就要處理,選擇法只處理本身范圍內(nèi)的最極端數(shù)據(jù).

public static void xuanze(int[] data) {int temp; for (int i = 0; i 〈 data.length; i++) {int lowIndex = i; for (int j = data.length - 1; j 〉 i; j--) {if (data[j] 〉 data[lowIndex]) {lowIndex = j; }}temp=data[i]; data[i]=data[lowIndex]; data[lowIndex]=temp; }}

四 Shell排序:

它是對插入排序的一種改進(jìn),是考慮將集合元素按照一定的基數(shù)劃分成組去排序,讓每一組在局部范圍內(nèi)先排成基本有序,最后在進(jìn)行一次所有元素的插入排序。

public void sort(int[] data) {for(int i=data.length/2; i〉2; i/=2){for(int j=0; j〈i; j++){insertSort(data,j,i); }}insertSort(data,0,1); }private void insertSort(int[] data, int start, int inc) {int temp; for(int i=start+inc; i〈data.length; i+=inc){for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){temp=data[j]; data[j]=data[j-inc]data[j-inc]=temp; }}}

希望本文所述對大家的java程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌黎县| 镇平县| 乌拉特中旗| 西畴县| 祁连县| 汉沽区| 南宁市| 淮安市| 西畴县| 宜君县| 宜宾县| 二连浩特市| 洪雅县| 孝感市| 中江县| 禹州市| 龙川县| 炎陵县| 鹤峰县| 荆州市| 友谊县| 丰原市| 麟游县| 浮山县| 石门县| 全州县| 军事| 三亚市| 兴和县| 衡阳市| 香港 | 荣昌县| 邯郸市| 朝阳市| 宿松县| 柘城县| 文化| 菏泽市| 昌黎县| 来安县| 楚雄市|