1. 程式人生 > >選擇排序基本思想及複雜度分析

選擇排序基本思想及複雜度分析

/*選擇排序    (不穩定演算法)
 * 基本思想:兩個for迴圈巢狀,內部for迴圈用來找到最大(小)的元素,外部迴圈用來放置找到的元素
 * 複雜度:需要遍歷陣列才能找到峰值元素,所以複雜度與原始序列是否有序無關,最好最壞和平均情況的時間複雜度都為O(n^2);
 * 需要一個臨時變數用來交換陣列內資料位置,所以空間複雜度為O(1)
 */
public static void xuanZeSort(int []a)
{

for(int i=0;i<a.length-1;i++)
{
for(int j=i+1;j<a.length;j++)
{
if(a[i]>a[j])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int j:a)  //j是a遍歷出的每個元素,不是下標
{
System.out.print (j+" ");


}

}

Ps:博文為博主的學習筆記,演算法只是按照自己的理解簡單分析,初學者建議看詳細的圖文講解,如果有錯誤,歡迎交流指正