排序演算法 Java實現 選擇排序法和快速排序法

2021-06-02 01:07:51 字數 1164 閱讀 4821

為了方便擴充套件,先引入乙個抽象的基礎類:

package com.andyidea.algorithms;

/** * 排序抽象基礎類

* @author andy.chen

* * @param */

public abstract class sorter>

protected final void swap(t array,int from,int to)

}

【三】

選擇排序:選擇排序

(selection sort)是一種簡單直觀的排序演算法,其平均時間複雜度為o(n2

)。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。以此類推,直到所有元素均排序完畢。

選擇排序演算法原始碼如下:

package com.andyidea.algorithms;

/** * 選擇排序法

* @author andy.chen

* * @param */

public class selectionsort> extends sorter

private void quick_sort(t array,int from, int to)

/*** 選擇基準元素

* @param array

* @param from

* @param to

* @return

*/private int selectpivot(t array,int from, int to)

/*** 分割槽操作

* @param array

* @param from

* @param to

* @param pivot

* @return

*/private int partition(t array, int from, int to, int pivot){

t tmp = array[pivot];

array[pivot] = array[to];

while(from != to){

while(from=0)

to--;

if(from

排序 選擇排序(java實現)

選擇排序是一種簡單直觀的排序演算法,其基本原理是 1.對給定的一組記錄,經過第一輪的比較後會得到最小的記錄,然後將該記錄與第乙個記錄的位置進行交換 2.接著對不包括第乙個記錄外的其他記錄進行第二輪比較,得到最小的記錄與第二個記錄交換 3.重複上述過程,直到剩下的記錄只有乙個 以陣列 為例,選擇排序的...

演算法 選擇排序法

每次最外層迴圈進來,預設下表為i的元素為最小或者最大元素。記錄min i。然後依次和剩下的元素比較,如果有比它大或者小的元素,記錄下來索引賦值給min。最後當每i輪迴圈完畢之後,判斷min是否等於i。如果等於則說明i沒有變,就是我們預設的最初的值,如果變了,說明最大值或者最小值發生了變化,則應該交換...

演算法排序(二) 選擇排序法

目標 實現選擇排序,將陣列元素從小到大進行排序 自定義方法selectionsort,傳入引數為待排序陣列array,返回排序完成後的陣列。思路 使用i從0到array.length 1對陣列進行遍歷,遍歷過程中,使用minindex變數記錄最小值下標,minindex初始值為i 接著使用變數j對陣...