為了方便擴充套件,先引入乙個抽象的基礎類:
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對陣...