選擇排序法

2021-10-24 14:17:41 字數 866 閱讀 2285

選擇排序演算法是為每乙個位置選擇當前最小的元素。選擇排序的基本思想是,基於直接選擇排序和堆排序這兩種基本的簡單排序方法。首先從第1個位置開始對全部元素進行選擇,選出全部元素中最小的值給該位置,再對第2個位置進行選擇,在剩餘元素中選擇最小的值給該位置即可,以此類推,重複進行「最小元素」的選擇,直至完成第(n-1)個位置的元素選擇,第n個位置就只剩唯一的最大元素,此時無需再進行選擇。

public class selectionsort ;

int rtdata = selectionfunction(data);

system.out.println(arrays.tostring(rtdata));

}public static int selectionfunction(int data)

}//迴圈一輪之後,會產生乙個最小值,把最小值與i當前的位置交換

int temp = data[i];

data[i] = data[index];

data[index] = temp;

}return data;

}}

輸出結果:

[2, 6, 7, 11, 14, 15, 16, 17, 19, 22, 23, 27, 33]

從上面選擇排序演算法的**不難發現,選擇排序與氣泡排序是非常類似的,下面就來說說它們的區別。

1. 氣泡排序比較的是相鄰兩個數的大小。選擇排序是按照順序進行比較,比較的是剩餘未排序的所有值的大小。

2. 氣泡排序每輪比較都需要將剩下的最大(最小)值與每個值進行位置交換直到這個值移到對應 的位置。選擇排序每輪比較只需交換當前值與最大(最小)值的位置

3. 氣泡排序是通過數去找相應的位置,選擇排序是給定位置後去比較對應的數;

排序法之選擇排序法

首先通過陣列中元素的比較方式來分析 用陣列中第乙個角標的元素與陣列中第二個角標的元素進行比較,發現9比6大,進行位置置換,此處應該定義乙個三方變數,用來記錄住置換過程的元素值,然後再用第乙個角標的元素與下乙個角標元素進行比較,按照全面的原則進行置換位置,如果前者小於後者,則不置換位置,一次比較,當第...

氣泡排序法 選擇排序法

相鄰兩個數進行比較 如果前者比後者大 就把前者和後者互換 比如十個數 經過九次比較 就可以得到乙個最大的數字於排列的最末端 再經過八次比較 可以得到乙個第二大的數 依次類推 即最大的數一次一次冒泡上來。include int main printf n 資料排序 for i 0 i 9 i 列印資料...

選擇排序法

1.直接選擇排序法 基本思想 每一趟 第i趟,i 0,1,2,n 1 在後面n i個待排序記錄中選出關鍵字最小的記錄,作為有序記錄序列的第i個記錄。直到第n 2趟完,待排記錄只剩下乙個,不完再選了!直接選擇排序法 void selectionsort int parry,int ilen if k ...