JAVA中的排序法

2021-04-30 10:00:43 字數 1380 閱讀 7149

一、 插入法:

//17ggs.com

遍歷排序集合,每到乙個元素時,都要將這個元素與所有它之前的元素遍歷比較一遍,讓符合排序順序的元素挨個移動到當前範圍內它最應該出現的位置。交換是相鄰遍歷移動,雙重迴圈控制實現。這種排序法屬於地頭蛇型別,在我的地牌上我要把所有的東西按一定的順序規整,過來乙個,規整乙個。處理**如下: //17ggs.com

public void sort(int data)

} }

//17ggs.com

//17ggs.com

二、冒泡法:

//17ggs.com

比較容易,它的內層迴圈保證遍歷一次後,集合中最小(大)元素出現在它的正確位置,下一次就是次小元素……該方法在集合分布的各種情況下交換移動的次數基本不變,屬於最慢的一種排序。實現也是雙重迴圈控制。這種排序法屬於過江龍,就是要找到極端,但是過獎龍也有大哥,二哥等,所以他們只能是大哥挑了二哥挑。處理**如下:

//17ggs.com

public static int maopao(int data) }}

//17ggs.com

return data; //17ggs.com

//17ggs.com

三、選擇法://17ggs.com

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

//17ggs.com

public static void xuanze(int data)

}temp=data;

data=data[lowindex];

data[lowindex]=temp; }}

//17ggs.com

//17ggs.com

四、shell排序:

//17ggs.com

它是對插入排序的一種改進,是考慮將集合元素按照一定的基數劃分成組去排序,讓每一組在區域性範圍內先排成基本有序,最後在進行一次所有元素的插入排序。 //17ggs.com

public void sort(int data)

}insertsort(data,0,1);

} //17ggs.com

private void insertsort(int data, int start, int inc)

}} //17ggs.com

java中陣列的排序,選擇排序法

要求 對陣列arr進行選擇排序法排序。思路 1,從第乙個元素 角標是0 開始,和它後面的每乙個元素進行比較,把較小的數存放在第乙個元素中,這樣,第乙個元素就是最小的值。2,從第二個元素開始,和它後面的每乙個元素進行比較,把較小的數存放在第二個元素中,這樣,第二個元素就是除第乙個外最小的值。3,繼續....

JAVA中冒泡法排序和選擇法排序

首先,我們先說下冒泡法 以公升序為例,既 1,2,3,4,5這個順序 其原理就是相鄰兩個數相比,如 a i 與a i 1 比較,如果前面的比後面大,則這兩個數交換,把大的數交換給a i 1 小的數交換給a i 下次比較就是a i 1 與 a i 2 繼續上一次的操作,如果後面的大於前面的,則兩個數交...

Java的快速排序法

花了很久的時間才搞定,根據演算法導論裡面的偽 寫的 最初在網上找的例子都有問題,不知為啥,都把我給搞暈了 然後按偽 來寫,也出錯,真是很鬱悶 然後全部刪掉重新寫了很多次,突然間就寫好了 主要難點在於partition函式,裡面的i和j的關係,它們的值在什麼時候進行交換 可能是很久沒有考慮過資料結構的...