• 首頁  >  文章  >  web前端  >  JAVA四種基本排序方法實例總結_javascript技巧

    JAVA四種基本排序方法實例總結_javascript技巧

    WBOY
    WBOY原創
    2016-05-16 15:49:13965瀏覽

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

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

    一 插入法:

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

    處理程式碼如下:

    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; }
    } 
    }
    

    二 冒泡法:

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

    處理程式碼如下:

    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;
    
    

    三 選法:

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

    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排序:

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

    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程式設計有幫助。

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn