選擇排序是一種非常簡單的排序演算法,從字面意思我們就可以知道,選擇就是從未排序好的序列中選擇出最小(最大)的元素,然後與第 i 趟排序的第 i-1(陣列中下標從 0 開始) 個位置的元素進行交換,第 i 個元素之
前的序列就是已經排序好的序列。整個排序過程只需要遍歷 n-1 趟便可排好,最後乙個元素自動為最大(最小)值。
舉個小例子:
arr =
第 1 趟排序: index = 0, min = 1, 交換後 --> 1,3,2,6,5,4
第 2 趟排序: index = 1, min = 2, 交換後 --> 1,2,3,6,5,4
第 3 趟排序: index = 2, min = 2, 交換後 --> 1,2,3,6,5,4
第 4 趟排序: index = 3, min = 5, 交換後 --> 1,2,3,4,5,6
第 5 趟排序: index = 4, min = 4, 交換後 --> 1,2,3,4,5,6
核心**如下:
/*** 選擇排序,從小到大排序
*/public
static
void selectsort(int
arr)
}if(min != i)
}}
選擇排序演算法是一種不穩定的演算法,它的時間複雜度為 o(n2),空間複雜度為 o(1).
Java排序演算法之 選擇排序
package algorithm.sort 選擇排序 首先找出陣列中的最小元素,將其與陣列的第乙個元素交換,接著找出次小元素,將其與陣列的第二個元素交換 對陣列中的前n 1個元素執行這一過程 author administrator public class selectsort 交換最小元素與每...
JAVA排序演算法之 選擇排序
1.選擇排序 選擇排序的基本思想是遍歷陣列的過程中,以i代表當前需要排序的序號,則需要在剩餘的 i.n 1 中找出其中的最小值,然後將找到的最小值與i指向的值進行交換。因為每一次確定元素的過程中都會有乙個選擇很大值的子流程,所以稱之為選擇排序。比如 38,17,16,16,7,31,39,32,2,...
java演算法之選擇排序
public class selectionsort system.out.println 排序前 printarray arr 呼叫輸出方法 selectionsort arr 進行排序 system.out.println 排序後 printarray arr 呼叫輸出方法 選擇排序的實現 pu...